From patchwork Thu May 17 18:00:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 915673 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="h0vZJ6gk"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40mzhQ2NFDz9s08 for ; Fri, 18 May 2018 04:04:06 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752457AbeEQSDv (ORCPT ); Thu, 17 May 2018 14:03:51 -0400 Received: from mail-lf0-f68.google.com ([209.85.215.68]:45733 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751293AbeEQSBS (ORCPT ); Thu, 17 May 2018 14:01:18 -0400 Received: by mail-lf0-f68.google.com with SMTP id w202-v6so10034917lff.12; Thu, 17 May 2018 11:01:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ge2kUIk5jpXgT8AJ2p3tnQotAwQeRy3WjQiObUXKVss=; b=h0vZJ6gkEMXhCs2OjYsTdC5OzdMhM4EtdZvXm4d7n61rZgvb1LeZjIXadMn/emDZ9h Tqr0uoJWVI67kpSiN/s8gf4y+ipitrLKojo1V/4H9Ww1YS+Lr/s6FMH7kC5MiIsQIaUD VZaZ9xLUcbdXyTLLWlEvFIntBSNMYtSGAjv/s0JiaE/m//kyANUgsKlRtJ9RLpdDpL8M 7XGaxOmc8tYqN6Y8pgMhw5zTN8xdgV1znNhDsPXPHOBYl0ErE5W2nOvq0rXAMp1eUaKF H9Yrmtc2wJmH/+wAKbR2SkXQ2hoPPmJRIA1URqbxRxBWntJHFnfx7b/st+NXOu/CJCMo +Ngw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ge2kUIk5jpXgT8AJ2p3tnQotAwQeRy3WjQiObUXKVss=; b=mbcKWf3xmUDMlteOQpTr4K1T4fB8HycfZzn1caMWIMyynSr3ZU8YeJP4/UjSJ15Rfr Yj4zvCpOyMa8UsPIEz3H0+xT85bo9oB1KX8UHOheeMqS/4crIfxaU/3jbchAQd38yA3O ssTLlWPBiP5kJ4TrHeG6ks2kA6UdP3/6qiv5cMVFAD4dWECR529kssqkH09sRRUrrB1x xlXD43HaNZ0mQkYoJ7osjutiV2180+pNj5v734iGuvIk6h5CZBwCNOrOcx5fOozY5fJE 488DMdHghdsdjTGoXn3vgh3teYRfBYqvo1WqEM3RzVTLWgUEXCusew/YzZZ5V5ZWnnOE 6bIQ== X-Gm-Message-State: ALKqPwcYtQWKFJgDIGJhjRTOTie06NY/wVNQxpvWoLhlPjfGiRHrCvVr NTd2efpKvU5FK7BXZfhMRnw= X-Google-Smtp-Source: AB8JxZqYoSLRGmnARJdsctGoZUu3PsfyR3Du1In5kefJd4Z/xxzkcZrcmaISY08j1t5/ihX7AefJyA== X-Received: by 2002:a2e:9a50:: with SMTP id k16-v6mr3640260ljj.36.1526580076393; Thu, 17 May 2018 11:01:16 -0700 (PDT) Received: from localhost.localdomain ([109.252.91.232]) by smtp.gmail.com with ESMTPSA id g71-v6sm1362211lfh.85.2018.05.17.11.01.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 17 May 2018 11:01:15 -0700 (PDT) From: Dmitry Osipenko To: "Rafael J. Wysocki" , Viresh Kumar , Thierry Reding , Jonathan Hunter Cc: linux-tegra@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Peter Geis Subject: [PATCH v1 04/11] cpufreq: tegra20: Release clocks properly Date: Thu, 17 May 2018 21:00:49 +0300 Message-Id: <20180517180056.13336-5-digetx@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180517180056.13336-1-digetx@gmail.com> References: <20180517180056.13336-1-digetx@gmail.com> Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org Properly put requested clocks in the module init/exit code. Signed-off-by: Dmitry Osipenko Acked-by: Viresh Kumar Acked-by: Thierry Reding --- drivers/cpufreq/tegra20-cpufreq.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/drivers/cpufreq/tegra20-cpufreq.c b/drivers/cpufreq/tegra20-cpufreq.c index 693f9067ba8a..69f033d297e1 100644 --- a/drivers/cpufreq/tegra20-cpufreq.c +++ b/drivers/cpufreq/tegra20-cpufreq.c @@ -165,24 +165,45 @@ static struct cpufreq_driver tegra_cpufreq_driver = { static int __init tegra_cpufreq_init(void) { + int err; + cpu_clk = clk_get_sys(NULL, "cclk"); if (IS_ERR(cpu_clk)) return PTR_ERR(cpu_clk); pll_x_clk = clk_get_sys(NULL, "pll_x"); - if (IS_ERR(pll_x_clk)) - return PTR_ERR(pll_x_clk); + if (IS_ERR(pll_x_clk)) { + err = PTR_ERR(pll_x_clk); + goto put_cpu; + } pll_p_clk = clk_get_sys(NULL, "pll_p"); - if (IS_ERR(pll_p_clk)) - return PTR_ERR(pll_p_clk); + if (IS_ERR(pll_p_clk)) { + err = PTR_ERR(pll_p_clk); + goto put_pll_x; + } + + err = cpufreq_register_driver(&tegra_cpufreq_driver); + if (err) + goto put_pll_p; + + return 0; + +put_pll_p: + clk_put(pll_p_clk); +put_pll_x: + clk_put(pll_x_clk); +put_cpu: + clk_put(cpu_clk); - return cpufreq_register_driver(&tegra_cpufreq_driver); + return err; } static void __exit tegra_cpufreq_exit(void) { cpufreq_unregister_driver(&tegra_cpufreq_driver); + clk_put(pll_p_clk); + clk_put(pll_x_clk); clk_put(cpu_clk); }