Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp3484597pxb; Mon, 4 Apr 2022 18:28:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmShJFoV3f9ZAvB8H5UYaBpxe4HgqLLzyJ2TAQc2oAuEyVAcW1UkYcrB9pMKGwPDTDHRPP X-Received: by 2002:a17:90a:fa95:b0:1bc:509f:c668 with SMTP id cu21-20020a17090afa9500b001bc509fc668mr1231106pjb.189.1649122080771; Mon, 04 Apr 2022 18:28:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649122080; cv=none; d=google.com; s=arc-20160816; b=BvPCzS/DkwFbA5nEwfPKG/kqXH0KWTZlruSXHx4XcQ9zZsyZZ+qfHOT/WAuR9u3m4q iDTCeua7mN2rBHmALPJF0bJeCIKYL54mva+BTf3SVNOpfiudB6FpUieLy4gxJW3d24lA 3eNmHyMvD4uwXQ5hLaMSw9BZSXqKuffPiQ5pctke/eWkxLuvKXLeVEOE+zl33dznaST1 e6JDUO6J5+YGddeypWfOlrOxR8/UqpH8fZtkBHPfG/vBQBAIfhNsZ9pQt0gqc+XyVJYu R3+J+81o+O0nQcHhx4JIQVhxHoMaYd7mkl9D+rpxLw7YwmSTjAsdWNqrwuf9Iem0OuBQ OQEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=VMqIZvNoGA35nboxQTC8hfRtFppIR3GHhFdX6Gk1Xgg=; b=we+qbPjY5Et7R4ns+wYnnJ7gT0dlphty929uuzRrzcLCkcwFqPi1N6ycgd5mhXA2WQ oOHD7ZbuplA1ZlNSW6/vjcdDJhXMWNWI+N9qf5//z5aF/T3DKZ/2DNcjo1VwkQfLAUOD vMGU8YkTsoP3UPHh9QCho+XrSdECHz1b1u/mqBS/aJeSvY99DI4SQXVebyKnxzTsRwDG UjqlPofDpahyJNsLNO6trIU39ehUNPNYUk7Wp3t5r3hJ26CUOtf8FzDLDgh3Cdv/2KE3 RicZPTXNFc1u16aej3THz40NQ2NA2wKwd//fzUD4ToBtAf/4wTTECXFDp5rHgXUXKBy/ RlOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=m71vvKmp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id t128-20020a632d86000000b00381f727a284si11534356pgt.423.2022.04.04.18.28.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Apr 2022 18:28:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=m71vvKmp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9A41B1A61C9; Mon, 4 Apr 2022 17:17:13 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356755AbiDCLqa (ORCPT + 99 others); Sun, 3 Apr 2022 07:46:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45006 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355109AbiDCLq2 (ORCPT ); Sun, 3 Apr 2022 07:46:28 -0400 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B105724BEE for ; Sun, 3 Apr 2022 04:44:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648986274; x=1680522274; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=lrXU+HMPPEqckxHX2gkclbUBQj3uyp9ZlIOK+EDPYRc=; b=m71vvKmpetRJaet5jWFjRPijwV/vKwjcYexi0dVCdL51zfDpLJxY2OgP Ta8AwRwozal1YPtDPQLhdR3Ep7CTk+PmYtjLiMyIzj8wE5SwhfdLNVvg8 AyefaBsbNTIkw0xTm2npVojBZwSC/z1BGTF4OGjZAKMjPaveN2JaQpgYp ssEW9kRSxe1270Pzg8Tv/ESqL5DO1OoqzSdc/tqhb8zB4UmsERqSZyXOI 6ClJMoRZMFHRhWsaG5bfOwzFshj7RJoP33lqGUDvrZ5XLNlcoFbGsHbDn yrYZzIUmYLuQRAa7VFH0SoGAMo7WTs0v6OSbaPQ/llPG0SfzBnnicrxLN w==; X-IronPort-AV: E=McAfee;i="6200,9189,10305"; a="242520301" X-IronPort-AV: E=Sophos;i="5.90,231,1643702400"; d="scan'208";a="242520301" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2022 04:44:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,231,1643702400"; d="scan'208";a="640972370" Received: from lkp-server02.sh.intel.com (HELO a44fdfb70b94) ([10.239.97.151]) by FMSMGA003.fm.intel.com with ESMTP; 03 Apr 2022 04:44:29 -0700 Received: from kbuild by a44fdfb70b94 with local (Exim 4.95) (envelope-from ) id 1nayei-0000vl-BG; Sun, 03 Apr 2022 11:44:28 +0000 Date: Sun, 3 Apr 2022 19:43:47 +0800 From: kernel test robot To: Miaoqian Lin , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , Tomi Valkeinen , Dave Airlie , Jyri Sarha , Maxime Ripard , Lyude Paul , Inki Dae , Yakir Yang , Heiko Stuebner , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: kbuild-all@lists.01.org Subject: Re: [PATCH] drm/bridge: Fix error handling in analogix_dp_probe Message-ID: <202204031935.5SkYsM2M-lkp@intel.com> References: <20220403051714.21212-1-linmq006@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220403051714.21212-1-linmq006@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Miaoqian, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm/drm-next] [also build test WARNING on v5.17 next-20220401] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/intel-lab-lkp/linux/commits/Miaoqian-Lin/drm-bridge-Fix-error-handling-in-analogix_dp_probe/20220403-131916 base: git://anongit.freedesktop.org/drm/drm drm-next config: x86_64-randconfig-m001 (https://download.01.org/0day-ci/archive/20220403/202204031935.5SkYsM2M-lkp@intel.com/config) compiler: gcc-11 (Debian 11.2.0-19) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot New smatch warnings: drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1705 analogix_dp_probe() warn: inconsistent indenting drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1705 analogix_dp_probe() warn: passing zero to 'ERR_CAST' drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1707 analogix_dp_probe() warn: ignoring unreachable code. Old smatch warnings: drivers/gpu/drm/bridge/analogix/analogix_dp_core.c:1846 analogix_dp_resume() warn: 'dp->clock' from clk_prepare_enable() not released on lines: 1842. vim +1705 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c 0d97ad03f4220c Tomeu Vizoso 2016-08-24 1638 6b2d8fd98d051f Jeffy Chen 2018-01-10 1639 struct analogix_dp_device * 152cce0006abf7 Marek Szyprowski 2020-03-10 1640 analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data) 3424e3a4f844c0 Yakir Yang 2016-03-29 1641 { 3424e3a4f844c0 Yakir Yang 2016-03-29 1642 struct platform_device *pdev = to_platform_device(dev); 3424e3a4f844c0 Yakir Yang 2016-03-29 1643 struct analogix_dp_device *dp; 3424e3a4f844c0 Yakir Yang 2016-03-29 1644 struct resource *res; 3424e3a4f844c0 Yakir Yang 2016-03-29 1645 unsigned int irq_flags; 3424e3a4f844c0 Yakir Yang 2016-03-29 1646 int ret; 3424e3a4f844c0 Yakir Yang 2016-03-29 1647 3424e3a4f844c0 Yakir Yang 2016-03-29 1648 if (!plat_data) { 3424e3a4f844c0 Yakir Yang 2016-03-29 1649 dev_err(dev, "Invalided input plat_data\n"); 6b2d8fd98d051f Jeffy Chen 2018-01-10 1650 return ERR_PTR(-EINVAL); 3424e3a4f844c0 Yakir Yang 2016-03-29 1651 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1652 3424e3a4f844c0 Yakir Yang 2016-03-29 1653 dp = devm_kzalloc(dev, sizeof(struct analogix_dp_device), GFP_KERNEL); 3424e3a4f844c0 Yakir Yang 2016-03-29 1654 if (!dp) 6b2d8fd98d051f Jeffy Chen 2018-01-10 1655 return ERR_PTR(-ENOMEM); 3424e3a4f844c0 Yakir Yang 2016-03-29 1656 3424e3a4f844c0 Yakir Yang 2016-03-29 1657 dp->dev = &pdev->dev; 3424e3a4f844c0 Yakir Yang 2016-03-29 1658 dp->dpms_mode = DRM_MODE_DPMS_OFF; 3424e3a4f844c0 Yakir Yang 2016-03-29 1659 0b8b059a75b08f Sean Paul 2016-08-08 1660 mutex_init(&dp->panel_lock); 0b8b059a75b08f Sean Paul 2016-08-08 1661 dp->panel_is_modeset = false; 0b8b059a75b08f Sean Paul 2016-08-08 1662 3424e3a4f844c0 Yakir Yang 2016-03-29 1663 /* 3424e3a4f844c0 Yakir Yang 2016-03-29 1664 * platform dp driver need containor_of the plat_data to get 3424e3a4f844c0 Yakir Yang 2016-03-29 1665 * the driver private data, so we need to store the point of 3424e3a4f844c0 Yakir Yang 2016-03-29 1666 * plat_data, not the context of plat_data. 3424e3a4f844c0 Yakir Yang 2016-03-29 1667 */ 3424e3a4f844c0 Yakir Yang 2016-03-29 1668 dp->plat_data = plat_data; 3424e3a4f844c0 Yakir Yang 2016-03-29 1669 793ce4eb84ea2f Yakir Yang 2016-02-15 1670 ret = analogix_dp_dt_parse_pdata(dp); 793ce4eb84ea2f Yakir Yang 2016-02-15 1671 if (ret) 6b2d8fd98d051f Jeffy Chen 2018-01-10 1672 return ERR_PTR(ret); 3424e3a4f844c0 Yakir Yang 2016-03-29 1673 3424e3a4f844c0 Yakir Yang 2016-03-29 1674 dp->phy = devm_phy_get(dp->dev, "dp"); 3424e3a4f844c0 Yakir Yang 2016-03-29 1675 if (IS_ERR(dp->phy)) { 3424e3a4f844c0 Yakir Yang 2016-03-29 1676 dev_err(dp->dev, "no DP phy configured\n"); 3424e3a4f844c0 Yakir Yang 2016-03-29 1677 ret = PTR_ERR(dp->phy); 3424e3a4f844c0 Yakir Yang 2016-03-29 1678 if (ret) { 3424e3a4f844c0 Yakir Yang 2016-03-29 1679 /* 3424e3a4f844c0 Yakir Yang 2016-03-29 1680 * phy itself is not enabled, so we can move forward 3424e3a4f844c0 Yakir Yang 2016-03-29 1681 * assigning NULL to phy pointer. 3424e3a4f844c0 Yakir Yang 2016-03-29 1682 */ 3424e3a4f844c0 Yakir Yang 2016-03-29 1683 if (ret == -ENOSYS || ret == -ENODEV) 3424e3a4f844c0 Yakir Yang 2016-03-29 1684 dp->phy = NULL; 3424e3a4f844c0 Yakir Yang 2016-03-29 1685 else 6b2d8fd98d051f Jeffy Chen 2018-01-10 1686 return ERR_PTR(ret); 3424e3a4f844c0 Yakir Yang 2016-03-29 1687 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1688 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1689 3424e3a4f844c0 Yakir Yang 2016-03-29 1690 dp->clock = devm_clk_get(&pdev->dev, "dp"); 3424e3a4f844c0 Yakir Yang 2016-03-29 1691 if (IS_ERR(dp->clock)) { 3424e3a4f844c0 Yakir Yang 2016-03-29 1692 dev_err(&pdev->dev, "failed to get clock\n"); 6b2d8fd98d051f Jeffy Chen 2018-01-10 1693 return ERR_CAST(dp->clock); 3424e3a4f844c0 Yakir Yang 2016-03-29 1694 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1695 3424e3a4f844c0 Yakir Yang 2016-03-29 1696 clk_prepare_enable(dp->clock); 3424e3a4f844c0 Yakir Yang 2016-03-29 1697 3424e3a4f844c0 Yakir Yang 2016-03-29 1698 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 3424e3a4f844c0 Yakir Yang 2016-03-29 1699 3424e3a4f844c0 Yakir Yang 2016-03-29 1700 dp->reg_base = devm_ioremap_resource(&pdev->dev, res); af6df465625fb3 Miaoqian Lin 2022-04-03 1701 if (IS_ERR(dp->reg_base)) { af6df465625fb3 Miaoqian Lin 2022-04-03 1702 ret = PTR_ERR(dp->reg_base); af6df465625fb3 Miaoqian Lin 2022-04-03 1703 goto err_disable_clk; af6df465625fb3 Miaoqian Lin 2022-04-03 1704 } 6b2d8fd98d051f Jeffy Chen 2018-01-10 @1705 return ERR_CAST(dp->reg_base); 3424e3a4f844c0 Yakir Yang 2016-03-29 1706 5cff007c58b710 Yakir Yang 2016-02-15 @1707 dp->force_hpd = of_property_read_bool(dev->of_node, "force-hpd"); 5cff007c58b710 Yakir Yang 2016-02-15 1708 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1709 /* Try two different names */ 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1710 dp->hpd_gpiod = devm_gpiod_get_optional(dev, "hpd", GPIOD_IN); 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1711 if (!dp->hpd_gpiod) 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1712 dp->hpd_gpiod = devm_gpiod_get_optional(dev, "samsung,hpd", 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1713 GPIOD_IN); 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1714 if (IS_ERR(dp->hpd_gpiod)) { 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1715 dev_err(dev, "error getting HDP GPIO: %ld\n", 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1716 PTR_ERR(dp->hpd_gpiod)); af6df465625fb3 Miaoqian Lin 2022-04-03 1717 ret = PTR_ERR(dp->hpd_gpiod); af6df465625fb3 Miaoqian Lin 2022-04-03 1718 goto err_disable_clk; 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1719 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1720 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1721 if (dp->hpd_gpiod) { 3424e3a4f844c0 Yakir Yang 2016-03-29 1722 /* 3424e3a4f844c0 Yakir Yang 2016-03-29 1723 * Set up the hotplug GPIO from the device tree as an interrupt. 3424e3a4f844c0 Yakir Yang 2016-03-29 1724 * Simply specifying a different interrupt in the device tree 3424e3a4f844c0 Yakir Yang 2016-03-29 1725 * doesn't work since we handle hotplug rather differently when 3424e3a4f844c0 Yakir Yang 2016-03-29 1726 * using a GPIO. We also need the actual GPIO specifier so 3424e3a4f844c0 Yakir Yang 2016-03-29 1727 * that we can get the current state of the GPIO. 3424e3a4f844c0 Yakir Yang 2016-03-29 1728 */ 5b038dcf9d0aa0 Linus Walleij 2019-06-10 1729 dp->irq = gpiod_to_irq(dp->hpd_gpiod); 3424e3a4f844c0 Yakir Yang 2016-03-29 1730 irq_flags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING; 3424e3a4f844c0 Yakir Yang 2016-03-29 1731 } else { 3424e3a4f844c0 Yakir Yang 2016-03-29 1732 dp->irq = platform_get_irq(pdev, 0); 3424e3a4f844c0 Yakir Yang 2016-03-29 1733 irq_flags = 0; 3424e3a4f844c0 Yakir Yang 2016-03-29 1734 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1735 3424e3a4f844c0 Yakir Yang 2016-03-29 1736 if (dp->irq == -ENXIO) { 3424e3a4f844c0 Yakir Yang 2016-03-29 1737 dev_err(&pdev->dev, "failed to get irq\n"); af6df465625fb3 Miaoqian Lin 2022-04-03 1738 ret = -ENODEV; af6df465625fb3 Miaoqian Lin 2022-04-03 1739 goto err_disable_clk; 3424e3a4f844c0 Yakir Yang 2016-03-29 1740 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1741 7b4b7a8db439dc Yakir Yang 2016-02-15 1742 ret = devm_request_threaded_irq(&pdev->dev, dp->irq, 7b4b7a8db439dc Yakir Yang 2016-02-15 1743 analogix_dp_hardirq, 7b4b7a8db439dc Yakir Yang 2016-02-15 1744 analogix_dp_irq_thread, 3424e3a4f844c0 Yakir Yang 2016-03-29 1745 irq_flags, "analogix-dp", dp); 3424e3a4f844c0 Yakir Yang 2016-03-29 1746 if (ret) { 3424e3a4f844c0 Yakir Yang 2016-03-29 1747 dev_err(&pdev->dev, "failed to request irq\n"); af6df465625fb3 Miaoqian Lin 2022-04-03 1748 goto err_disable_clk; 3424e3a4f844c0 Yakir Yang 2016-03-29 1749 } 3424e3a4f844c0 Yakir Yang 2016-03-29 1750 disable_irq(dp->irq); 3424e3a4f844c0 Yakir Yang 2016-03-29 1751 152cce0006abf7 Marek Szyprowski 2020-03-10 1752 return dp; af6df465625fb3 Miaoqian Lin 2022-04-03 1753 af6df465625fb3 Miaoqian Lin 2022-04-03 1754 err_disable_clk: af6df465625fb3 Miaoqian Lin 2022-04-03 1755 clk_disable_unprepare(dp->clock); af6df465625fb3 Miaoqian Lin 2022-04-03 1756 return ERR_PTR(ret); 152cce0006abf7 Marek Szyprowski 2020-03-10 1757 } 152cce0006abf7 Marek Szyprowski 2020-03-10 1758 EXPORT_SYMBOL_GPL(analogix_dp_probe); 152cce0006abf7 Marek Szyprowski 2020-03-10 1759 -- 0-DAY CI Kernel Test Service https://01.org/lkp