Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp2439157ybk; Sun, 17 May 2020 22:02:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzVuQkj7dRXmuAzhPnDW8ZOBGVi29eKokBIBsoS69SyWQvSlFJpX3jSSZbFmtuKS2drsbb6 X-Received: by 2002:a17:906:6a43:: with SMTP id n3mr581753ejs.33.1589778141836; Sun, 17 May 2020 22:02:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589778141; cv=none; d=google.com; s=arc-20160816; b=lkO6BCy12hOglDgauGhkdi5zc4zCPtylRk0b2YH5kbuB2h9SBFC8cwTdfg+9Oi2XQW kkqP+tJI7fAL+itzg9BxqlHDst/wK2b++jJRs6uDOyDLfHMyCHzAFmZaX5zudAsvzj+S tcsqyzzSLQauPbHEgIshleah9PldruzxrI2k5tRjvkDuE0tMYqUzwRKi2NNYEscBK2CA W/44T6NUPng004FjBkj/NzgCbgsm77ykW2VFLY3F7kcssk5lVCg1QRkwcpbf59QqtfbQ T3/nUNpQMhlscsMmBSTx1vHlPZQ+SB7dsr4RGCX32FVDvZ7NlXlUREHtN8y+tTZUCkKP tH0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:dlp-filter:cms-type :content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:cc:to:subject:dkim-signature :dkim-filter; bh=2vKXIIAYOJgXhTtQivWEVpWzLzbMQ4ucMNU0uUTwl/U=; b=OujZQKmEv8xIQR6TTR0fwYaKQM/b3C7lejey+w7kJRvOO2VvBXp1Xs+l5cOYgP0mmz ANRU/qjSMLBOU6CxK070nnLGE9mg1QnpB6VZltqWplCA+5P+EBAGSHuvCzl26xB9Am/a WVqAC+6DvOvTl4pd16fgaQm+687eIosL9fhxVe9R7qtUA8hTMDjj+uYkl5Uzd5fPE57d 0tWEb6+3i45/s0nSuIx/75/w9P9uHixiUK2yd3m/u5FcxI/g+0ldLesAhbWUyJGvSoE+ 0M970LEjvtIOeokuM29j8LHnSk3F68RxLs5HiBp/qbfxcJQ2Evt6ilqB953HoG82iu9W ouYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b="MmZzi/fo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m16si2947913edq.126.2020.05.17.22.01.59; Sun, 17 May 2020 22:02:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b="MmZzi/fo"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726502AbgERE61 (ORCPT + 99 others); Mon, 18 May 2020 00:58:27 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:38447 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726040AbgERE60 (ORCPT ); Mon, 18 May 2020 00:58:26 -0400 Received: from epcas1p3.samsung.com (unknown [182.195.41.47]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20200518045823epoutp02bb62b0235f6e3fe6a4773db62439b79b~QBpSTkArP1897918979epoutp02n for ; Mon, 18 May 2020 04:58:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20200518045823epoutp02bb62b0235f6e3fe6a4773db62439b79b~QBpSTkArP1897918979epoutp02n DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1589777903; bh=2vKXIIAYOJgXhTtQivWEVpWzLzbMQ4ucMNU0uUTwl/U=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=MmZzi/foElZN65Xwgb+7uAHNZDSVtBp7834w3bfhDGim/dXViessWyDHK0CzGsh8/ eAWpyge7LQPM3wc9BIpf48hE3w3ntiuJYP8o+NlrffMkjgATKu6vzgLElf+MFeYhsh rArozyONz5XD2mZS6cT1sUV2Cm/JhboBV2wn/3m4= Received: from epsnrtp2.localdomain (unknown [182.195.42.163]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20200518045822epcas1p210f4b5c58774a0d81bf33380b4a9e7fe~QBpRn_InW2079620796epcas1p2P; Mon, 18 May 2020 04:58:22 +0000 (GMT) Received: from epsmges1p1.samsung.com (unknown [182.195.40.153]) by epsnrtp2.localdomain (Postfix) with ESMTP id 49QRbv2j2kzMqYkX; Mon, 18 May 2020 04:58:19 +0000 (GMT) Received: from epcas1p3.samsung.com ( [182.195.41.47]) by epsmges1p1.samsung.com (Symantec Messaging Gateway) with SMTP id 23.9D.04402.BE512CE5; Mon, 18 May 2020 13:58:19 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas1p3.samsung.com (KnoxPortal) with ESMTPA id 20200518045818epcas1p39ac7fcb92fd73391c1c3746c17e34b58~QBpN9eY0i3065630656epcas1p3x; Mon, 18 May 2020 04:58:18 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200518045818epsmtrp1ba3d66b3ebbc2bea915377d691a1fd53~QBpN7x5dT1824518245epsmtrp13; Mon, 18 May 2020 04:58:18 +0000 (GMT) X-AuditID: b6c32a35-753ff70000001132-eb-5ec215ebf79b Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 45.34.18461.AE512CE5; Mon, 18 May 2020 13:58:18 +0900 (KST) Received: from [10.113.221.211] (unknown [10.113.221.211]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200518045818epsmtip132883eeffa5658720ed2b7a889712bea~QBpNpdb3G0973109731epsmtip1k; Mon, 18 May 2020 04:58:18 +0000 (GMT) Subject: Re: [PATCH v2] drm/exynos: dsi: Remove bridge node reference in error handling path in probe function To: Christophe JAILLET , jy0922.shim@samsung.com, sw0312.kim@samsung.com, kyungmin.park@samsung.com, airlied@linux.ie, daniel@ffwll.ch, kgene@kernel.org, krzk@kernel.org Cc: dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org From: Inki Dae Message-ID: <4555b0a8-b919-b5c1-cacb-1e6aec8a1aa8@samsung.com> Date: Mon, 18 May 2020 14:03:38 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20200516105736.269669-1-christophe.jaillet@wanadoo.fr> Content-Language: en-US Content-Transfer-Encoding: 8bit X-Brightmail-Tracker: H4sIAAAAAAAAA01TfUgUaRzmnZmdHaXtplXrh0HpHAUapqOuTZfGcUUNfYBQXGXgNqyTK+7H MLMbeQRtdeeZ2tlixeppCVl4excrW9qHqGRRWaZGH9ZibbQSlZHZokVxHzsOcf73vM/z/N7n 93s/KNw4RCZTZQ6XKDsEG0PGE53X0jIzxpP6irM855K4I4P9GNdxtVnH/dvpxbkHUxMk9+rZ PYLrCC3k6iLjODc01K7n7h58q+eCkUc67v6VJpLzDfVgnK/+Nfm9ge+ebiH4oP8wyV+cfq7j wzU3Mf58637+twt+xEeDi/jo04CukCoqz7eKQokop4gOi7OkzFFawGzcYl5jNuVlsRnsSm4F k+IQ7GIBs3ZTYca6MlusYyZlj2Bzx6hCQVGYzNX5stPtElOsTsVVwIhSiU1aKS1XBLvidpQu tzjt37FZWdmmmHFXubU6/Ide+idxb03nOOFB7+lqFEcBnQuVt1tRNYqnjPQlBF1tTbgqGOkP CEYez9WEaQS9wV91XysmPo9imtCNINx7TactJhC8H25AqiuBlqCr3zcjJNIDCAKtr2ZCcDqA oObWx5kQkl4C3rYwqWIDvRq6a/v1KiZi/MB0e6yAopLo7XBnStAs86C/YYxQ6Th6LZyIbFNp nF4AobFTmIYXw6GO33Gt0wcUfDptUe0Qs/sP8hqdAG9uXtBrOBle11Xq1c6APoTA67uDaYsq BE8jI4TmyoHeM/WYuhFOp0HgSqZGp8LlL81Iy50L76ZqdVqWAaoqjZqFgRv3HiMNAwy3ekkN 8xC5fVJ/FKU2zhqscdY0jbOmafw/uAURfjRflBR7qaiwEjv7soNo5jGnmy6hY4Ob+hBNIWaO YbjoarFRJ+xRKux9CCicSTTsiPYUGw0lQsVPouw0y26bqPQhU+zYvXhyksUZ+xoOl5k1Zefk 5HC5bJ6JZZkFhuMjtmIjXSq4xHJRlET5ax1GxSV70LK/j+1MH8119AQrF02u/2WfFyPSrQd2 dG0efPlNW0fFyKexorpvb5nzcn88fTR0dv+pxZ4vLc8z/SfWp11+U783GzX8vPHDuoTDu0OS T3R2vrhYa7ellb/464emDQVPJgfCD+Wt/ubQ5lT3vvbJ6KOARx78c9XZqrbr+fHyUsvH0eh5 hlCsApuOy4rwHy7gdrXiAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIIsWRmVeSWpSXmKPExsWy7bCSnO4r0UNxBrPfGVv0njvJZLH14FxW i//bJjJbXPn6ns3ixb2LLBZbb0lb9D9+zWxx/vwGdouzTW/YLTY9vsZqcXnXHDaLGef3MVnM mPySzYHXY++3BSwem1Z1snls//aA1eN+93Emj81L6j36tqxi9Pi8Sc7j8931rAEcUVw2Kak5 mWWpRfp2CVwZXfdXshf8E6no3vaapYHxg0AXIyeHhICJxPtfd5i6GLk4hAR2M0os2/aYsYuR AyghIbFlKweEKSxx+HAxRMlbRokp/xYzgfQKCxRI/F/7lhnEFhE4wygxdWMmSBGzwHpGiV1P n7JDdExnlNj6fCpYB5uAqsTEFffZQGxeATuJvT0n2UFsFqD4mW8bGEFsUYEIiefbbzBC1AhK nJz5hAXkCk4BF4lpj8NBwswC6hJ/5l1ihrDFJW49mc8EYctLNG+dzTyBUWgWku5ZSFpmIWmZ haRlASPLKkbJ1ILi3PTcYsMCw7zUcr3ixNzi0rx0veT83E2M4FjU0tzBuH3VB71DjEwcjIcY JTiYlUR4Iz/vixPiTUmsrEotyo8vKs1JLT7EKM3BoiTOe6NwYZyQQHpiSWp2ampBahFMlomD U6qByWTLEt21OScOXl33pjZsbWBl7eylVh8fOPwSq7zkFTJv54obH2f93pn5oirqSZXC/0/C aew56z31C/8Gphqs1+CXeRQWredXyqY7RyXl7/e0HuXlppKnt1/OOX/F0LlCTunBwYLW5Xzz /RcHJT7PrVmRf01HuuR68PrX33qiD4m9PPBRP31mgoqRpNfSPxJb32yfU7DA4IK32MS1xzaJ yQTk3WuKD+47ZLP5VNFrxh3fZJ/IsaUGZuXrb15v8c07//+drym7GQVnrMvff/ZBlsSc6VWT qlWmHf3y1aeA9YNf7dXPXlX3Tv/6e9fydt7vFQ/q0kIX5/FdTj669PnJDiVhnkcTtjVNOTHr nqnOqhQlluKMREMt5qLiRAAYCeXcNAMAAA== X-CMS-MailID: 20200518045818epcas1p39ac7fcb92fd73391c1c3746c17e34b58 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20200516105750epcas1p2227417d4e2387a0f6aec4a96b1ba7ae4 References: <20200516105736.269669-1-christophe.jaillet@wanadoo.fr> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 20. 5. 16. 오후 7:57에 Christophe JAILLET 이(가) 쓴 글: > 'exynos_dsi_parse_dt()' takes a reference to 'dsi->in_bridge_node'. > This must be released in the error handling path. Picked it up. Thanks, Inki Dae > > In order to do that, add an error handling path and move the > 'exynos_dsi_parse_dt()' call from the beginning to the end of the probe > function to ease the error handling path. > This function only sets some variables which are used only in the > 'transfer' function. > > The call chain is: > .transfer > --> exynos_dsi_host_transfer > --> exynos_dsi_init > --> exynos_dsi_enable_clock (use burst_clk_rate and esc_clk_rate) > --> exynos_dsi_set_pll (use pll_clk_rate) > > While at it, also handle cases where 'component_add()' fails. > > This patch is similar to commit 70505c2ef94b ("drm/exynos: dsi: Remove bridge node reference in removal") > which fixed the issue in the remove function. > > Signed-off-by: Christophe JAILLET > --- > A Fixes tag could be required, but I've not been able to figure out which > one to use. > > v2: move around 'exynos_dsi_parse_dt' instead of adding many gotos > handle component_add failures > --- > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 20 +++++++++++++++----- > 1 file changed, 15 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > index 902938d2568f..a9d24402fabf 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > @@ -1759,10 +1759,6 @@ static int exynos_dsi_probe(struct platform_device *pdev) > dsi->dev = dev; > dsi->driver_data = of_device_get_match_data(dev); > > - ret = exynos_dsi_parse_dt(dsi); > - if (ret) > - return ret; > - > dsi->supplies[0].supply = "vddcore"; > dsi->supplies[1].supply = "vddio"; > ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(dsi->supplies), > @@ -1823,11 +1819,25 @@ static int exynos_dsi_probe(struct platform_device *pdev) > return ret; > } > > + ret = exynos_dsi_parse_dt(dsi); > + if (ret) > + return ret; > + > platform_set_drvdata(pdev, &dsi->encoder); > > pm_runtime_enable(dev); > > - return component_add(dev, &exynos_dsi_component_ops); > + ret = component_add(dev, &exynos_dsi_component_ops); > + if (ret) > + goto err_disable_runtime; > + > + return 0; > + > +err_disable_runtime: > + pm_runtime_disable(dev); > + of_node_put(dsi->in_bridge_node); > + > + return ret; > } > > static int exynos_dsi_remove(struct platform_device *pdev) >