From patchwork Mon Aug 29 09:11:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Masson X-Patchwork-Id: 1671408 X-Patchwork-Delegate: seanga2@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.a=rsa-sha256 header.s=20210112 header.b=3Jefb36p; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4MGTgG1bLdz1ygc for ; Mon, 29 Aug 2022 22:06:18 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 12C328496F; Mon, 29 Aug 2022 14:05:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=baylibre-com.20210112.gappssmtp.com header.i=@baylibre-com.20210112.gappssmtp.com header.b="3Jefb36p"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B35DF845F8; Mon, 29 Aug 2022 11:12:23 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 5702B83F4C for ; Mon, 29 Aug 2022 11:12:21 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jmasson@baylibre.com Received: by mail-wr1-x42d.google.com with SMTP id n17so9342942wrm.4 for ; Mon, 29 Aug 2022 02:12:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc; bh=Cji1adKEALud0mJHo+8ForX2FhGRn88yGo93EcqqQIM=; b=3Jefb36pLAb3ekkWVfnGf95fLDv9m6D7su9ZMFAs/PIMI7CfPDY4KHcXBUF8bXHnjf STrFJGGzcNTxC/f4syCvNc/xFH972KL4NDpxLxASPlxs06IeUT00RV3ZJrndm9TQImFN /VbaeISVzk6t6Gvw0VaMrFLtEvZ3D4ZlAiepwctyji1Kg/1f+vDI5apmaQJgF8lykB+7 HUO2AR3WDHEvKPtA4QwR6IkuSNeKI1Bq23w+0kgpuYAopIezKfMZ8vjDyEgL7SK0T+89 H5gxdhJNuSuDMcCqPP5hxfODgT7YGiZRG3uoGDpvl069BhwOvJvHJ/He/QqerGCJFvwb VKgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc; bh=Cji1adKEALud0mJHo+8ForX2FhGRn88yGo93EcqqQIM=; b=HBnVVa6w9WIR3S+BcTZ7cbo31gdexiOYK3MbdgE4BsCUit5mMnYPKxdfppJZBHofos yz1YZZRcOcIxA3Qp+Rnu3gsrFbIHwAt+rdXYdlgVHoFbuQDsKZ6i+NbPYoFW0eEbrgkI rINmJpnCIMaFEr8gv0ljkHnuLeFUMOJvDuApR0N8xV+2GCfjGs3tq32DtchOrbTd2WSm 1xFjAKcMZbCc93ARAwuOQmGpO6mnYHkdP+/mwjCoGnmVv3htxl37ad0NKhAwFk0x/X+o 6Sqejl9Drs3bRj5NPOxGmCTnsyohYaO8cOA1+b/GFUdMU/io2eiLqBOrSmIVnlU7dGi/ O9UQ== X-Gm-Message-State: ACgBeo3qjXctGwuNkBsJH8xXJr/xlsR4FelENSSDHCSaIC6vZHuidfdp oeVEXRuQ79GwxO1ixmco+TDEsbKfJ+ttSA== X-Google-Smtp-Source: AA6agR6JYmpLgBW++4EgX+2gQ88cVgnnrGN09fBBP1jbCSsv6+n09bIixqAjSaKUTuadWbVzqXEN8w== X-Received: by 2002:a05:6000:1561:b0:225:337b:454b with SMTP id 1-20020a056000156100b00225337b454bmr5587696wrz.660.1661764340701; Mon, 29 Aug 2022 02:12:20 -0700 (PDT) Received: from localhost (lfbn-tou-1-1369-76.w90-89.abo.wanadoo.fr. [90.89.178.76]) by smtp.gmail.com with ESMTPSA id w17-20020a5d6091000000b002237fd66585sm6450397wrt.92.2022.08.29.02.12.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Aug 2022 02:12:20 -0700 (PDT) From: Julien Masson To: u-boot@lists.denx.de Cc: Sean Anderson , Lukasz Majewski Subject: [RFC PATCH v2] clk: fix clk_get_rate() always return ulong Date: Mon, 29 Aug 2022 11:11:37 +0200 Message-ID: <87bks3wgzw.fsf@baylibre.com> MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 29 Aug 2022 14:05:12 +0200 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean According to clk_ops struct definition, the callback `get_rate()` return current clock rate value as ulong. `clk_get_rate()` should handle the clock rate returned as ulong also. Otherwise we may have invalid/truncated clock rate value returned by `clk_get_rate()`. `log_ret` has also been removed since it use an `int` in the macro definition. Signed-off-by: Julien Masson Reviewed-by: Simon Glass Reviewed-by: Sean Anderson --- drivers/clk/clk-uclass.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index b89c77bf79..c351fa97d1 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -469,7 +469,7 @@ void clk_free(struct clk *clk) ulong clk_get_rate(struct clk *clk) { const struct clk_ops *ops; - int ret; + ulong ret; debug("%s(clk=%p)\n", __func__, clk); if (!clk_valid(clk)) @@ -479,11 +479,7 @@ ulong clk_get_rate(struct clk *clk) if (!ops->get_rate) return -ENOSYS; - ret = ops->get_rate(clk); - if (ret) - return log_ret(ret); - - return 0; + return ops->get_rate(clk); } struct clk *clk_get_parent(struct clk *clk)