From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5B777ECAAD2 for ; Tue, 30 Aug 2022 02:31:28 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E877484989; Tue, 30 Aug 2022 04:30:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="IEdc4Hg5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B6B9A84974; Tue, 30 Aug 2022 04:30:24 +0200 (CEST) Received: from mail-yw1-x1131.google.com (mail-yw1-x1131.google.com [IPv6:2607:f8b0:4864:20::1131]) (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 81F258497C for ; Tue, 30 Aug 2022 04:30:22 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@google.com Received: by mail-yw1-x1131.google.com with SMTP id 00721157ae682-3376851fe13so240988937b3.6 for ; Mon, 29 Aug 2022 19:30:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=mO5xzR2WI3OPR3noQfFWwbsMf+bhLkwnqy5wC62YcIQ=; b=IEdc4Hg52Qf1Cyq7HS00i/JfJvX6f71ZjbSVAMGyCxlAiIsh1JUItUi6PelkorFf73 m7GbN6OPI9NhAYeie9HLyngefgTBnYkR4lDkIZeXyKUeX8WqcuiZV6slgiGN2Pi4kPTT xZF34al6APQxYj0b/FoQcnorN7CKW2E0pW4uQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=mO5xzR2WI3OPR3noQfFWwbsMf+bhLkwnqy5wC62YcIQ=; b=N5zEL0bI3j0BVOA5DF2/W0t3Hmz0vugNwokBUMfkticDHQnBbL7b/gCrpkcPdjQ9U2 B41rcdksj27uP7R6JpinjtM5zZ1aiXya2cAb0eF7E3PBOKnUk0EN+WObHy3RmO5d2kAY g6Ulk4yqdVqaONHypn2DZ4Fyrtm6GpPGpYmzA/t8NyL+EntzFN/TKG6kCO04WOO5xX8E KfND+y8DRT++ARKiNco7vpw+qeTCaYeLjD6t5mtLM/bpCMOuheNABa84zhv7AWqCiV5O jzdwOm5ZcXnKI5jQzmDo7eH5ecV1UF6KCgBKKxZ5rBB8SHpnBwi9+XKdKsNPXif+W6hB ItnA== X-Gm-Message-State: ACgBeo0M0KcwnXNOPyaPrLSa5X8T9L/YElQNGQYkjw6U0aRa0pEO7OCw Dshb8BBZJPZi8weFP5OyhZLiCEdKT7uRti6IemuIQg== X-Google-Smtp-Source: AA6agR7jpsGLt6bFh38HX2spmt+SkGA2vXqy2w40IysCy58wRwX6RAbsqOod1VwIXYZp9sgB017r0wT6YW7vBhkUDGc= X-Received: by 2002:a81:6cd7:0:b0:33d:cd0f:123a with SMTP id h206-20020a816cd7000000b0033dcd0f123amr12305760ywc.422.1661826621877; Mon, 29 Aug 2022 19:30:21 -0700 (PDT) MIME-Version: 1.0 References: <87bks3wgzw.fsf@baylibre.com> In-Reply-To: <87bks3wgzw.fsf@baylibre.com> From: Simon Glass Date: Mon, 29 Aug 2022 20:30:07 -0600 Message-ID: Subject: Re: [RFC PATCH v2] clk: fix clk_get_rate() always return ulong To: Julien Masson Cc: U-Boot Mailing List , Sean Anderson , Lukasz Majewski Content-Type: text/plain; charset="UTF-8" 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 Hi Julien, On Mon, 29 Aug 2022 at 06:06, Julien Masson wrote: > > 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 > --- > drivers/clk/clk-uclass.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) Reviewed-by: Simon Glass I would prefer to create a new log_rete() to handle this, with a long argument and return value. But this is OK, I suppose. > > 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) > -- > 2.37.2 > Regards, Simon