Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp1383310pxv; Fri, 2 Jul 2021 02:24:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyUsX1o6UPFcsUV4vsg54cyE3rEaoodfiFh2dyiS846JPyWDZ5faHy+B/zdg2LBpsHWFxcK X-Received: by 2002:a17:907:1611:: with SMTP id hb17mr4407075ejc.450.1625217896600; Fri, 02 Jul 2021 02:24:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625217896; cv=none; d=google.com; s=arc-20160816; b=wUmqJFUykvn1r/yk6YYGOf/GySD2BgEOcM+GStyTAbG1BmKRHHEUp8rfxTNDzlbaAH MSZ80hZpFt7jPnB1cPWjfo7ccnp3vHsYfvC8bjiLAKP7aVurD5XboZHEbI1ZMcnUo520 pJ8CW5QMYkFhwd1rzVAfNsMhBYV3+VbmRkplHsQIlVHJO8fn86qop/MM7jutrVNFFFYg iABGmSJj2ivrp+qvNSfnAdnJilGrIPpn2r9ligicm/Nr0h/4YpPzvjeDpej+hWP0xtzu C7grbvDXXxYOafjydzBtbyvY2W99JfA6iYe6sOv0i+7rqnTTInF7jdfEQVRj8Yh6s8y+ QEWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=OgGUwiD86E754SHPP5c8vn9EyEoNKXunTKK1V9Pgukg=; b=qAjT19tV4/jj+MSb7CNmmuw7GT+DwbkU7N7JCtpk9lqM3iNzABJl+yTZRDDiJHUWtF UNWH4awJvjmQ2ZkOlLOKHFkmWKxF2Sup/rgJ5Ea/yq/e7BXImUbZq27Bdx4AqLY9yoL7 0g+xkLrlSMTo7FzYh4FWvyASDecq2mDosXGAhC1m7tY2vKT5SHGjIISqaWKEmEmckpkI wpjL/iQ9TEabr1C3uvkOrVILWcPOtvhYPTjGoZv2IYCtDkzFBPoJ3kauDceGnLoUxnay bMROb96sa6GgV1kJbtYUA71XSeZRCciNL4EbWKZeq1QaoO6qfP4+7uZ/gfO6HskC7Hh+ yJIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=M7SiC9cb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ka15si2671338ejc.148.2021.07.02.02.24.33; Fri, 02 Jul 2021 02:24:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@googlemail.com header.s=20161025 header.b=M7SiC9cb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231192AbhGBJWW (ORCPT + 99 others); Fri, 2 Jul 2021 05:22:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230351AbhGBJWV (ORCPT ); Fri, 2 Jul 2021 05:22:21 -0400 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE348C061764; Fri, 2 Jul 2021 02:19:49 -0700 (PDT) Received: by mail-ed1-x52c.google.com with SMTP id t3so12316264edc.7; Fri, 02 Jul 2021 02:19:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OgGUwiD86E754SHPP5c8vn9EyEoNKXunTKK1V9Pgukg=; b=M7SiC9cbH6MuqHUMzemWrXHCkuSRqABHEz674QXB0rpS8JD+5XXrJTmLG7A+atareB bNhGKhcSiOdeygKFSU2ITr6TpgEtDSkaTDSO7eEEP6+943nYaXu4ZqsJ54d27jxLuP/j u+c2aJsMJvm6bhWsWUgpvXNiiydkrpCVu0qULXRlxlGxsRqsXw4wYbxHVXevgRbSOBWW 4x3P4jLmLYZ2FSlhQ2TkvrIfSug0zi4pul4grzYf7YnFBAFZqiZZDEab81pTXqejRryt ix/3O+pSo5XgFAT+eSZoxs0W5/RhsL4EBakDgqMEak5iWtpM5AIQUebQGu54x/D79Gb7 inUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OgGUwiD86E754SHPP5c8vn9EyEoNKXunTKK1V9Pgukg=; b=t9S9x258bXxqGxTYrVDpI6RGSupbZGoBkZAl30t4gNO9hThPhFsi5MCH3lpboUAzE6 V2gncVm+CRITpqJbHNbjMy9JJRGdUBk5B7JKZqPxT3EGWhE0nDh+M+dulAzwE0B4cUmK epyVnyHRmNvdSP5QzjnNIP1vHgZZ8yy+F4L/ltHjhUxEEbcNJpHWigCdedqyypU1DTFu 3rGCrTtQwU8PrlD0EePIvFyDfnQ5XX1HJ6fjBQAYtUn2D29vkY8ykrNr3qdtksRx2MFU /zaVI7VTqcxQgZ4B6szp6dB07pqDnKDUwUqe8UGf2Sgt/x2E+6XJmecfORf1FrXRYLZF IjXw== X-Gm-Message-State: AOAM532NK+DOgD8iBkgdlxkVujwHt9oQnshLhZS5eKcy39zcX3H6QFP4 ia/WQYAidZLrDYoxnGWDPS0NZwhgMUs6bXmZULw= X-Received: by 2002:a50:ec08:: with SMTP id g8mr5484634edr.98.1625217588288; Fri, 02 Jul 2021 02:19:48 -0700 (PDT) MIME-Version: 1.0 References: <20210627223959.188139-1-martin.blumenstingl@googlemail.com> <20210627223959.188139-3-martin.blumenstingl@googlemail.com> <20210701202540.GA1085600@roeck-us.net> <162518776607.3570193.14348711594242395887@swboyd.mtv.corp.google.com> In-Reply-To: <162518776607.3570193.14348711594242395887@swboyd.mtv.corp.google.com> From: Martin Blumenstingl Date: Fri, 2 Jul 2021 11:19:37 +0200 Message-ID: Subject: Re: [PATCH v3 2/3] clk: divider: Switch from .round_rate to .determine_rate by default To: Stephen Boyd Cc: Guenter Roeck , mturquette@baylibre.com, linux-clk@vger.kernel.org, Neil Armstrong , jbrunet@baylibre.com, khilman@baylibre.com, linux-kernel@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Stephen, On Fri, Jul 2, 2021 at 3:02 AM Stephen Boyd wrote: [...] > My guess is that we have drivers copying the clk_ops from the > divider_ops structure and so they are copying over round_rate but not > determine_rate. I just learned something new - thanks for investigating this as well! $ git grep "clk_divider_ops\.round_rate" drivers/ drivers/clk/bcm/clk-bcm2835.c: return clk_divider_ops.round_rate(hw, rate, parent_rate); drivers/clk/clk-stm32f4.c: return clk_divider_ops.round_rate(hw, rate, prate); drivers/clk/clk-stm32h7.c: return clk_divider_ops.round_rate(hw, rate, prate); drivers/clk/clk-stm32mp1.c: req->rate = clk_divider_ops.round_rate(hw, req->rate, &best_parent_rate); drivers/clk/imx/clk-divider-gate.c: return clk_divider_ops.round_rate(hw, rate, prate); $ git grep "clk_divider_ro_ops\.round_rate" drivers/ $ Changing these over to use clk_divider_ops.determine_rate doesn't seem too hard. The part that I am not sure about is how to organize the patches. 1) amend the changes to all relevant drivers (from above) to this patch 2) multiple patches: - adding .determine_rate to the default divider ops (but not removing .round_rate) - a single patch for each relevant driver (from above) - removing .round_rate from the default divider ops Another approach is to first create clk_divider_determine_rate() (as done here) and export it. Then I could have one individual patch for each relevant driver (from above) to use: .determine_rate = clk_divider_determine_rate, Then finally I could remove clk_divider_round_rate() and switch over the default divider ops to .determine_rate as well. Which way do you prefer? Best regards, Martin