From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Chen Subject: [PATCH 7/7] gpu: drm: vc4_hdmi: add missing of_node_put after calling of_parse_phandle Date: Tue, 5 Jul 2016 10:04:54 +0800 Message-ID: <1467684294-20111-8-git-send-email-peter.chen@nxp.com> References: <1467684294-20111-1-git-send-email-peter.chen@nxp.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <1467684294-20111-1-git-send-email-peter.chen@nxp.com> Sender: linux-kernel-owner@vger.kernel.org To: airlied@linux.ie Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Peter Chen , Eric Anholt List-Id: dri-devel@lists.freedesktop.org of_node_put needs to be called when the device node which is got from of_parse_phandle has finished using. Cc: Eric Anholt Signed-off-by: Peter Chen --- drivers/gpu/drm/vc4/vc4_hdmi.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index fd2644d..26b6b06 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -465,12 +465,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) if (IS_ERR(hdmi->hd_regs)) return PTR_ERR(hdmi->hd_regs); - ddc_node = of_parse_phandle(dev->of_node, "ddc", 0); - if (!ddc_node) { - DRM_ERROR("Failed to find ddc node in device tree\n"); - return -ENODEV; - } - hdmi->pixel_clock = devm_clk_get(dev, "pixel"); if (IS_ERR(hdmi->pixel_clock)) { DRM_ERROR("Failed to get pixel clock\n"); @@ -482,7 +476,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) return PTR_ERR(hdmi->hsm_clock); } + ddc_node = of_parse_phandle(dev->of_node, "ddc", 0); + if (!ddc_node) { + DRM_ERROR("Failed to find ddc node in device tree\n"); + return -ENODEV; + } + hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node); + of_node_put(ddc_node); if (!hdmi->ddc) { DRM_DEBUG("Failed to get ddc i2c adapter by node\n"); return -EPROBE_DEFER; -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754287AbcGECMq (ORCPT ); Mon, 4 Jul 2016 22:12:46 -0400 Received: from mail-bn3nam01on0060.outbound.protection.outlook.com ([104.47.33.60]:10471 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754108AbcGECM1 (ORCPT ); Mon, 4 Jul 2016 22:12:27 -0400 X-Greylist: delayed 62465 seconds by postgrey-1.27 at vger.kernel.org; Mon, 04 Jul 2016 22:12:27 EDT Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; anholt.net; dkim=none (message not signed) header.d=none;anholt.net; dmarc=fail action=none header.from=nxp.com; From: Peter Chen To: CC: , , "Peter Chen" , Eric Anholt Subject: [PATCH 7/7] gpu: drm: vc4_hdmi: add missing of_node_put after calling of_parse_phandle Date: Tue, 5 Jul 2016 10:04:54 +0800 Message-ID: <1467684294-20111-8-git-send-email-peter.chen@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1467684294-20111-1-git-send-email-peter.chen@nxp.com> References: <1467684294-20111-1-git-send-email-peter.chen@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131121583448791739;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.158.2;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(36756003)(11100500001)(7846002)(2351001)(229853001)(4326007)(6806005)(77096005)(2906002)(305945005)(47776003)(104016004)(2950100001)(5003940100001)(68736007)(50226002)(586003)(8936002)(86362001)(189998001)(97736004)(8676002)(110136002)(50466002)(92566002)(50986999)(81166006)(76176999)(33646002)(69596002)(19580395003)(19580405001)(105606002)(81156014)(48376002)(87936001)(8666005)(85426001)(356003)(106466001)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR03MB248;H:az84smr01.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD005;1:VncPJpOT4VtaapiZdlDcetFkbTArkd6BwPzAKisPYHUgpJLy+AyY5oumdXUuacKDLwmQDZxJ9OZB9nxRpRUoa+EpNubZO4TJo24maxT0snZFWQ1cTSVhYATccjzqR/B+KFauRL+QIGEXPGSz4JIefFEWsx/QLs7fqWg55reew2fwFyxsEPnfHQmU8TqDSHrVUOUQ1auPFQfYwSV7TrK4Sk2GwcDgEV/aFE5wco/ibMpHCX72egfV4GwfC/TeASOI7rFXQChZHx25OrPVGTxPbD88Aiy4cBRjnBFmleaQ57+ajWFERqQAs73dYcsiE9nGUg0JdVSqVnAn+Xh01QBZKpOnOnOn+R0n58Mhn5PJ5hVGN6DUXBvt5KlsLNb+FoUHco4FzH4oWrJiGbh7O/HRNXRAK4WROyoZtVkJ5pjTEfXMezsRPE2wyO0icVzaf5mRZR0lqfXmNDHbFhhFADPoI/KgDQPcbttmecTMiOQxKGqftfvcywAbeD6pxjZiFqNlGdlfltWvddGTOTuLa9WiB4rzMTsSxAiR9JvCDR1sTwwsqiBNqBZWYswOOv6fOLT+Iu376a2yXgqfLzeFEZU1vWA+1+BTwUtNesdJ4g/cLFXsU6Yh+Qh/zJ1ElOPnRKf7 MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 4a3b6526-3a36-48c5-0fb3-08d3a479ce3e X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB248;2:mWLL6PbxIY08LAyjN3sPVP1KK7hlVYluJ60HBnbF2apCBAmA+tPUbjgsTh0OPs/UZoFeY//n9yeNlhn9a2v0vRWPS3fX8n2pL3zsGjaCwYBXRy9C/ikiHyRSvvPoQmdZjWbmrFAnwsROn2ttyW4kFY2BO75i13aaBh8oIWz/5NjG71Nt98Y4LlMS8zvCkmLq;3:wnpbE0cmyWy8kyOlIX8GzRl6i+p0/hrY/Dxb+NrJM+NDeGo4BNL7uAUuqYDazapfIwQ/h22R6wIeRmJO3bICY5KhbPqoTbGb5t3Ck8seQReOyViTtdKJvBOZj48YvkUkD/zAKsBtww4M7/gepTydpcXqfcyXQ2YdNHLb/dZvWK81gry5W8i+ZtneLMQ0AUCn0GvBtRRHO2w/S/NWzNQZ2cfRe/pb0qTtj94T5QWsAkU=;25:7ChnLMy02+8UAKhpo39rK7bBo/5+RR/wSerNSbF68IgYkvem2V4DaoFq4zXfI3/INo36QM4rqxvFw7S1MA++ZrYMqlYNHwKf9OZd1zK9wjkoSeldc79qWksMEj5YcKpIh/gQQHmN5c4WWllSIjx4J4KaBdYT+C+g/aEo0FiULoAmoyw8Ab4wd7wjh88MvXhbvLnx9V9icTE4sp79vKDzVRuQQTNJt5oM31lP9UHPeE5/hMRsxqlp72Re8j591NSrNw0J+9+6wFjs/n5ZDKXWz5MILkKENMT023cueiw/yDLwiQ8MWD8l6r30Sqp9R+zGU8iS3ZiVl8OQ4d2rmpnRiNSO2moup4GnHDrHhdPh/0cKK0Nx27z1rPQGKDcGQnXZ6IzP5kjgnLT07JTpTK45/pLe5tUNEGeipHcUlx7Xv+o= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB248; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13015025)(5005006)(8121501046)(13017025)(13023025)(13018025)(13024025)(3002001)(10201501046)(6055026);SRVR:BLUPR03MB248;BCL:0;PCL:0;RULEID:(400006);SRVR:BLUPR03MB248; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB248;4:rbIIa9lqSVKwog4aLsDUotYJ2AI8sd7ZTKHBabz8Mw5Qgs/RQNzB1rhuT6AY3kzq7MCnTAYgLRXt5flUbJgidNbTzewlSSpMI/D2Lf0jTSyRrCGp9KMTD2DqbNabnxLmMty1Hs9O4GvoDt2nqeWR/PFfyfNsMo4nHO8L7YFr/o4CyvH3XkF6Ypq6ylAM1+1XzfE5OQbZI5nlc5oz1UcpWYlk+T9Bs6Y+47MEVE3nmfAOUeFSTbhssejFOOzsLPsnkiEa28KG8i661f8Ko9i6unD2aZIeAHgMcORhX/PgqE6N0XF75njGOCYPoatojOQRnrEZelGwo5ZUtY1fOAy7QFsJcf3wjIBFwmaKPkLtSfFO4sZZ0dkil2zM4sVHFWEZKTTFtGhaUaibWVPibUtQG+ToT6rAw0KBtf4jq+6CmfIt3JFR3QqT5VZJ0lW5yFXUOoav3rLso6vToF/5naBVB3JzQDJfMV/op+JrZ030ADFeq98F+dHfp2gviA27eGu9W4DNOvkZ0/Q0fI9SPtf79Q== X-Forefront-PRVS: 0994F5E0C5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR03MB248;23:iBLB0u4GXEkkUGdN7F+KmT1B15c0b9SaG1ZSdaJ0kK?= =?us-ascii?Q?pmty3dHup3WIhZfBD6d11D7R0fPDocUFtUQxwLopG0RvCUVwFUKl8bUDfayq?= =?us-ascii?Q?/R7dIL4tUoM3FVfqWE0MiepgUZnRJ12N5QCGGg7NzlMR2ZCTD4N1UYd7IPhF?= =?us-ascii?Q?VGaMk8FZHIm9wU5INc14lB7KzSLQOtdEA/aVoFPqg3TNyO06gXnCj5hioF2T?= =?us-ascii?Q?Etynwt07CKRNY1mo1DDCWbKUlQLjkhnuxuom001QepUy7dRqpepzqA0o2qJH?= =?us-ascii?Q?S4qB/392lVmlLQWXrBtbJwgWelpxIBoJUoF1htJtyQQiy1XiBp0nfxHPFNOF?= =?us-ascii?Q?AFcNW7hkq4EEMFLbuTSZB9PM9sf+EOtjVnty7qJfiEGD2cGDoaw4I79MaJ81?= =?us-ascii?Q?IXowFc/N0gi9PkdsYeuz2Fdyl2r7KrB67JrknCW3wgJTZlnX0TVtvFudGLem?= =?us-ascii?Q?P3BYM0LebCTur681IBICEH6/+mhmtsTyhhWIIayzBCx+N6z8c355d15mV+/F?= =?us-ascii?Q?OlmawfU1bkeyqsSd5RV13x+oDaSypfCdHWnE5sSdnFHgO5KEitl1+45FikvX?= =?us-ascii?Q?PYM0SmSq3eae/T4kAmk5KJGOzfVWcUlT7EkrN3sb1FKh6U+M14zIAEpaTKYN?= =?us-ascii?Q?hNrN/jAAPv0PglA54j9ZZX4737ap/Gq1kPyN5F4Yp62rvFcMI6VxSyaHEdKT?= =?us-ascii?Q?R4nIWCsUI+rPCVszJxJd5ma8c9zTHjM8Xfj0cv/OjCtDuQ1q3/oTzpoEAaJv?= =?us-ascii?Q?bxbrP+OXK9VKpXUZn2FLDVaXn4izTB2Phzjb/O1M/3GnMCzpt5SDbiCzB+zv?= =?us-ascii?Q?V7gwKQV8Jln1aHBI927sNwZGVCJB6nRHM7WysrO47Ri0n9Av78CsgN7BsafD?= =?us-ascii?Q?Px0/OoSGy3K1R4epp+rRzOnI+7CUMRoPFLKf+Gr7A+aBL5OUwlFeotPHbZoQ?= =?us-ascii?Q?NQLowRgedPgQdxcufZsKwaAzXVHPCf8zLvrpnfpaVSzzh1g+bIRb6HHjGkN2?= =?us-ascii?Q?E4LRAgpacSJv87vVxh+HOe2j6H3zTK+P3BhHjzc5ACaY1mBkAOpPXk3Q7IgD?= =?us-ascii?Q?hawWPCpBSZTy67Z43yM6z+YwlFDrR2ionuwCEwzh3AWPLDqhcMIOwpA4/rvf?= =?us-ascii?Q?Tr8nrdezv7YJjuhyWn4F71jshe1fAOVbw+X7/Vhd0D+nrU4R5NNQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB248;6:xCjfIwMzqhniPy4iik6X5ECTR3CB8733dNXDPx1PHwOaQdDq3SkySAPLwuFfjYBK5lv0pQg+2jwdA7oblDqFH3jUA6Dcz+qt5qSMeSyLSItFUERokLu94MUzLFPInG6OVz17jvJl2stbyDLH7vTxrt8jl10lU/9F2iMAnPkmQIlPSBoAEAAvBY2sf1u+zkJRyljh/MpgQjAaXs37hxwfk4rrCLOJsJIrZ2fp4D7G8EK1DFnZUF5RtRe3L6OP+Uimjz+O+yTD+gP/G6qR8e076aEYjrsW9z+eKAqvjo7oUqrJeSyrxC5Bz5eIb+mVlhIN;5:tqmJpQ5dOBFmxt/AJL+R8pC3uNyudi7824Ajd9In4TDVVgHdI3Su+wmsd/h7Ux3Tzvnwu4Un4VTQFFR8y48Pi3r0N3yLfndlmEgzeXJzMt0z7RH8EFYI4asJ+oyZ6B/Uen1cEVNDFVVuoz1Zka6f6pTWAWRdQ+JlaxyNKfAnzAo=;24:AVpXarGEuODMYDEu3DFnP3flmm/YmL/yLyMOxQ3PESPPIn2ZqcaA7qxCFyynGse/AewYXDVEMXUI0C20tN5G5GGx6mgk7gNJ32/je1gJEjo=;7:eFK7faQqV13lfHKfUbK1QyMzA80RVtcsGABF5+8PvPwVoPELEkpKixQEhVoUlhhH/kJBrEnMtuRO1uPPEypcj7FaAk+qPcznqrD0zIf8ZnYAFjWlijxdf/nW5VtW0BeD/gKsdQe1sm8v9wLnImge1EOLIKb4TJ8skkH5XFzSq1F9sqgkNxozqUJwoQQGNl+SSv0sel2nbCkt/vdlJoFGulvJ55uXNzBFjs+JQZL3x8w3absYOGMCuFIEvS4N+TAcoeyJ84+SvrGbQcM+9KQqEA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2016 02:12:24.5359 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB248 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org of_node_put needs to be called when the device node which is got from of_parse_phandle has finished using. Cc: Eric Anholt Signed-off-by: Peter Chen --- drivers/gpu/drm/vc4/vc4_hdmi.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index fd2644d..26b6b06 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -465,12 +465,6 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) if (IS_ERR(hdmi->hd_regs)) return PTR_ERR(hdmi->hd_regs); - ddc_node = of_parse_phandle(dev->of_node, "ddc", 0); - if (!ddc_node) { - DRM_ERROR("Failed to find ddc node in device tree\n"); - return -ENODEV; - } - hdmi->pixel_clock = devm_clk_get(dev, "pixel"); if (IS_ERR(hdmi->pixel_clock)) { DRM_ERROR("Failed to get pixel clock\n"); @@ -482,7 +476,14 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) return PTR_ERR(hdmi->hsm_clock); } + ddc_node = of_parse_phandle(dev->of_node, "ddc", 0); + if (!ddc_node) { + DRM_ERROR("Failed to find ddc node in device tree\n"); + return -ENODEV; + } + hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node); + of_node_put(ddc_node); if (!hdmi->ddc) { DRM_DEBUG("Failed to get ddc i2c adapter by node\n"); return -EPROBE_DEFER; -- 1.9.1