Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751471AbdFZHCs (ORCPT ); Mon, 26 Jun 2017 03:02:48 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:31374 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751354AbdFZHCn (ORCPT ); Mon, 26 Jun 2017 03:02:43 -0400 X-AuditID: cbfec7f5-f792f6d0000063e9-b4-5950b18dc47c Subject: Re: [PATCH] drm: exynos: dsi: release DSI_PORT_OUT node right after of_drm_find_bridge() To: Shuah Khan , inki.dae@samsung.com, sw0312.kim@samsung.com, kyungmin.park@samsung.com, airlied@linux.ie, kgene@kernel.org, krzk@kernel.org, javier@osg.samsung.com Cc: linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org From: Andrzej Hajda Message-id: <5d308e03-e92a-7bac-f65e-23c2ccbe161a@samsung.com> Date: Mon, 26 Jun 2017 09:02:35 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-version: 1.0 In-reply-to: <20170624005628.5896-1-shuahkh@osg.samsung.com> Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 7bit Content-language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRjHeXfOtuNwcpqaD5Ypoz4o5YUsTk0kKeIEQktC1KBaepjiprKp qH3IFMNLNt1myTK1vJUY2VHMgswLXkq8lCUIqeVYqbkyL6WF2rZj4Lff83+f2/99XwKTDPI9 iYSkVEaTpFBJBSK8rW995FDxU3l04N2/AVTx8Gse9X71h4DST5fg1IK1iUfpzN8wamSkWUgN 5SwIKdY8zqfGXlQIqPKRDh5VtrKIU+WGOcEJZ5ptLBDQz3594tPTRf08uqX2Gt2qmxTSt1ob Eb3M7pMLY0QhcYwqIZ3RBIReFsV3fdXzUkrFGe0m92w0KypETgSQwZDbWSPgeDeMTj2xsYiQ kHUIGhsMiAuWEXRXF/MLEeGomLQ4c3o9gq35x3wu+IKALRtD9lauZCwYF7N5dnYjuxF0VYXa kzDyJoL6vklHkoD0hY2WCcdsMRkKxWwBZmecPACDhjkHu5NR8EBfKuRydsGaYQq3sxMZAg29 rEPHbH1mV/Q4x97Q0mTFOPaA3LwJnPNmFcLo1kHOgRewnRgnn4LKouFt+64w398q5HgvFOR3 8ew7A1mEYEk3IOQCI4LNxfLtahn09L/lc8NcQN92B+MGiCH/hoRLoaFmuXR7hzAoYte3b0uH 4Hf5BlaCfEw7vJl2+DHt8GPa4aca4Y3IjUnTqpWM9oi/VqHWpiUp/WOT1SyyfbHBzf7VdlTX d7wbkQSSOos7ZfJoCV+Rrs1U216CwKRu4toymySOU2RmMZrkS5o0FaPtRnsIXOohFr0Zj5KQ SkUqk8gwKYzm/ymPcPLMRifppqHK3jbZ2FFfpeV2R/6x4CvgstTz7sy6tasi1dsnEI0f/vMq 8qF/y0/5Zvo9wUB44POcqnNBPX6PZuSbxoi8CK+La2dPTzVnqWZ0VVaj5f6F/VHOn/34ukiZ uaLXnBHOXp32fzncvvAx83uYKefDWrRFHxKTcD6gL1F5vXJCimvjFUF+mEar+AdcFUfnXgMA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJIsWRmVeSWpSXmKPExsVy+t/xa7q9GwMiDc6f47XoPXeSyeLK1/ds FpPuT2CxePN2DZNF/+PXzBbnz29gtzjb9IbdYtPja6wWl3fNYbOYcX4fk8XULx9YLGZMfsnm wOOxaVUnm8f2bw9YPe53H2fy2Lyk3mNL/112j74tqxg9Pm+SC2CPcrPJSE1MSS1SSM1Lzk/J zEu3VQoNcdO1UFLIS8xNtVWK0PUNCVJSKEvMKQXyjAzQgINzgHuwkr5dglvGweeTmAom8lbs mCXawPiCq4uRg0NCwETi7lOeLkZOIFNM4sK99WxdjFwcQgJLGCXuXHvOCOE8Y5T4MmULG0iV sECyxJQPDUwgtojAIUaJDa8FQIqYBXoYJV5OXMEE0TGRUaLx6TmwKjYBTYm/m2+CdfMK2En0 bupkBrFZBFQlTk9+CWaLCkRI7Lp+gBWiRlDix+R7LCA2p4CNxPKjm9hBTmUWUJeYMiUXJMws IC+xec1bZghbXKK59SbLBEbBWUi6ZyF0zELSMQtJxwJGllWMIqmlxbnpucWGesWJucWleel6 yfm5mxiB0bzt2M/NOxgvbQw+xCjAwajEw3vIOiBSiDWxrLgyF+hvDmYlEd4lU4FCvCmJlVWp RfnxRaU5qcWHGE2BXpvILCWanA9MNHkl8YYmhuaWhkbGFhbmRkZK4rwlH66ECwmkJ5akZqem FqQWwfQxcXBKNTDOUW+58Nxlo3RV7o43uqXu/dbmyyaJ1/LoznH/vOj6gS511pd3qvZF7Tua Zjv18P/Ob7nZvR/FPk69ZnnLcVfG59cdGlaOmrtPmRyffupGaPWWeOZ8jjfhF2/MX89SL9P7 cI2VtNvt91pnJi+TN287LFaV5Nj/Z0rU8Vvq95g3bMzItA7T3hKlxFKckWioxVxUnAgAWC/D BvwCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170626070237eucas1p1687f59d5c5dd0b1e45177ad1473645f6 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170626004946epcas4p40785020666ae6d43476822d067604baa X-RootMTR: 20170626004946epcas4p40785020666ae6d43476822d067604baa References: <20170624005628.5896-1-shuahkh@osg.samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1625 Lines: 54 Hi Shuah, On 24.06.2017 02:56, Shuah Khan wrote: > Fix to call of_node_put() right after of_drm_find_bridge() instead of > holding on to it until exynos_dsi_remove(). I think the current implementation is OK, node is get in probe and put in remove. There could be many bind/unbind during lifetime of the bound driver. For example, there is possible sequence: 1. probe - 2. bind 3. unbind 4. bind With this patch on 2nd bind (point 4) driver will call of_drm_find_bridge on dsi->bridge_node which was put earlier (point 2.). Regards Andrzej > > Suggested-by: Inki Dae > Signed-off-by: Shuah Khan > --- > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > index e337cd2..7513b88 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > @@ -1689,6 +1689,7 @@ static int exynos_dsi_bind(struct device *dev, struct device *master, > > if (dsi->bridge_node) { > bridge = of_drm_find_bridge(dsi->bridge_node); > + of_node_put(dsi->bridge_node); > if (bridge) > drm_bridge_attach(encoder, bridge, NULL); > } > @@ -1807,10 +1808,6 @@ static int exynos_dsi_probe(struct platform_device *pdev) > > static int exynos_dsi_remove(struct platform_device *pdev) > { > - struct exynos_dsi *dsi = platform_get_drvdata(pdev); > - > - of_node_put(dsi->bridge_node); > - > pm_runtime_disable(&pdev->dev); > > component_del(&pdev->dev, &exynos_dsi_component_ops);