Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp1786950imm; Thu, 18 Oct 2018 04:20:26 -0700 (PDT) X-Google-Smtp-Source: ACcGV60fevI0c785Ro0AjgaPuAlSLbjYsfp+hSLQ5svY68M1csG9T/HgVZO0bSitoWJsXE/4afAY X-Received: by 2002:a17:902:562:: with SMTP id 89-v6mr30030753plf.315.1539861626906; Thu, 18 Oct 2018 04:20:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539861626; cv=none; d=google.com; s=arc-20160816; b=X2x3NIZkvNOcA628fe1N9akj9A0SI5U11Bgeg+pHT91HCW7q07k5WTMOFYqc4+sK8h 1oI8h5cL938M7APoPRtUG9aQXUpDpKB0+RFK7udLdgPAFfd5vtR5eRyJ4fQh5btoci7X mPB3vhs/xmvKl2gPxb23JLWHD5jkXrhC6PfDRc5ArxBHHPapUyawazO7B5syUwnXTls9 SnWXOOwXa3O1kczG3nc4VgR5oFvGv8A6dSSuErKF3fMuHGA8Xr3FcFiS7AzR6k01w+Vj 6ocrPROcidU4ksmDx/B5JwlgM9UQZjAVQXXYLXFurUgmbnku1saBom0ooSgvTxqF8ypJ h37g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=v1+i96LhcH5sGPG30Qs82LLEy9XELiYpsHDbFuMKwGQ=; b=kSgIARP3DIW603VJMzX17kSes1cB5ttaZTb3JXl6mZ3Vab7Rfjtrm5VXK6TxxMjpSR VewbKNtckbA0NUNzh5GZttCB7Nz6bw2GyzpI/HPRmEygWJRpQ8DthEN4CAHC0kwz9FaY 3bbnswyVRZ2e5r9w7vEco0/bPbs0rRga+BLKUwFtAH7KYlzqR3bZBE/nptIeN6YbSVJ0 qMqYmW2RZgu8PFXFiK5ohDNLbt4DJbDdCfM9JkEAOqUG5XBtNjYOTPDENyaycPRT8kZ+ v8io/uEDp2jVMzfMyGv3u0B/QP/Iy0+1G5Hxjk1oIz/w7+VwAZcZOqB8pfkjaN12Zhrl c8qQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l1-v6si5737076pgm.288.2018.10.18.04.20.11; Thu, 18 Oct 2018 04:20:26 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728138AbeJRTUP (ORCPT + 99 others); Thu, 18 Oct 2018 15:20:15 -0400 Received: from mout.perfora.net ([74.208.4.194]:57799 "EHLO mout.perfora.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728093AbeJRTUP (ORCPT ); Thu, 18 Oct 2018 15:20:15 -0400 Received: from localhost.localdomain.toradex.int ([46.140.72.82]) by mrelay.perfora.net (mreueus001 [74.208.5.2]) with ESMTPA (Nemesis) id 0MacbH-1ftV8t3ldp-00K7TE; Thu, 18 Oct 2018 13:18:43 +0200 Received: from localhost.localdomain.toradex.int ([46.140.72.82]) by mrelay.perfora.net (mreueus001 [74.208.5.2]) with ESMTPA (Nemesis) id 0MacbH-1ftV8t3ldp-00K7TE; Thu, 18 Oct 2018 13:18:43 +0200 From: Marcel Ziswiler To: alsa-devel@alsa-project.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mark Brown , Kuninori Morimoto , Marcel Ziswiler , Jaroslav Kysela , Thierry Reding , Jonathan Hunter , Takashi Iwai , Liam Girdwood Subject: [PATCH v1 1/3] ASoC: tegra_sgtl5000: fix device_node refcounting Date: Thu, 18 Oct 2018 13:18:27 +0200 Message-Id: <20181018111829.27056-2-marcel@ziswiler.com> X-Mailer: git-send-email 2.14.4 In-Reply-To: <20181018111829.27056-1-marcel@ziswiler.com> References: <20181018111829.27056-1-marcel@ziswiler.com> X-Provags-ID: V03:K1:h/RwB9KJSeshyjTp77xr2mPVM7dco829n86Dq8wxKpnlzn2pE4v DbDs+3TIMI7qUrUIrJtQHkIiZxptkRySzFRLkHq8ivFIVWouxpNIYeOgJCkAoAgcfagbjh1 UVdKlJmjMVFeO+Bx+1Vhh1WytoxHYS06R5fxKxAFa8nef5sf5IKJHMw2PP+k53SOoFULebA GY10TFDx7bJ1vCcea684g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V01:K0:jA1xLb7G+uQ=:FUsTvKVxL4HmK1TbnmKvX2 ts4Qvi2FKGGsifaGKNcMDHkmxwTfRrvwX4yW3Hhu8HJh+kJG50ijETD8hsQ53yMD+Ng9deLMj Zrnpg6FGmngJJQMEJU/jbkjm/QaNk4w+RqILNu51f0nqLjyn2BXRyVI7Dl2kilh0zhCWgGrwy KHZcAYG7EPb7JPF/HINqn6aW673eS6ptCI9VsjmamMYDjC6uQhxoxwRldXoZTtKJCg1zzZ/5X vcHsl1v5KPK2DWM+pYZjZxQT5Vwrrrc6i1hIy1tMFqXx/aD+MGb29eIhW/bxXeudHv7KAXPbF etoH1taDEg9fZg4jHqlsuV5dww6eXoCpkNHbAnxGGvXvC/hHVZB83F+1cDODTyR8TgzNeBTaY NIRtoSYA/R/nrnvOCQH4UQDqaHg1wm/ZS2ImkwcfCrQgOZgNF/pqJc4odlEwe8ZiZx/wnNTfb S96OGMAYIITlcq5a/LOn0MY45H7W/Od2MVobVboZ9K0FYavdSadYS9egoRNeUGdOL7WMFaTOC KTZlUgXvK+EOJqi7bb+x3QxL++fYVFcwM3sDLazCwA7DuiJk03oKhILkkT5tHdXC0eakgweXc mJYiY2bM53SjRraFAgUvYsKRcE4LkXbCm7NyM3QVwf6yCQxCUiIl/jcuXDleAjT1Wmx8DjO8d 6WY/3UxPiKry2TU6CGaGrjc8g6QxP295XBpX8ETyg03o04CHopYzmYgWfCXXus3wbSBw= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Marcel Ziswiler Similar to the following: commit 4321723648b0 ("ASoC: tegra_alc5632: fix device_node refcounting") commit 7c5dfd549617 ("ASoC: tegra: fix device_node refcounting") Signed-off-by: Marcel Ziswiler Acked-by: Jon Hunter --- Changes in v1: None sound/soc/tegra/tegra_sgtl5000.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/sound/soc/tegra/tegra_sgtl5000.c b/sound/soc/tegra/tegra_sgtl5000.c index 45a4aa9d2a47..901457da25ec 100644 --- a/sound/soc/tegra/tegra_sgtl5000.c +++ b/sound/soc/tegra/tegra_sgtl5000.c @@ -149,14 +149,14 @@ static int tegra_sgtl5000_driver_probe(struct platform_device *pdev) dev_err(&pdev->dev, "Property 'nvidia,i2s-controller' missing/invalid\n"); ret = -EINVAL; - goto err; + goto err_put_codec_of_node; } tegra_sgtl5000_dai.platform_of_node = tegra_sgtl5000_dai.cpu_of_node; ret = tegra_asoc_utils_init(&machine->util_data, &pdev->dev); if (ret) - goto err; + goto err_put_cpu_of_node; ret = snd_soc_register_card(card); if (ret) { @@ -169,6 +169,13 @@ static int tegra_sgtl5000_driver_probe(struct platform_device *pdev) err_fini_utils: tegra_asoc_utils_fini(&machine->util_data); +err_put_cpu_of_node: + of_node_put(tegra_sgtl5000_dai.cpu_of_node); + tegra_sgtl5000_dai.cpu_of_node = NULL; + tegra_sgtl5000_dai.platform_of_node = NULL; +err_put_codec_of_node: + of_node_put(tegra_sgtl5000_dai.codec_of_node); + tegra_sgtl5000_dai.codec_of_node = NULL; err: return ret; } @@ -183,6 +190,12 @@ static int tegra_sgtl5000_driver_remove(struct platform_device *pdev) tegra_asoc_utils_fini(&machine->util_data); + of_node_put(tegra_sgtl5000_dai.cpu_of_node); + tegra_sgtl5000_dai.cpu_of_node = NULL; + tegra_sgtl5000_dai.platform_of_node = NULL; + of_node_put(tegra_sgtl5000_dai.codec_of_node); + tegra_sgtl5000_dai.codec_of_node = NULL; + return ret; } -- 2.14.4