Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp3373106ioa; Tue, 26 Apr 2022 02:13:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwyPrkFUcrUwknSQ/+BmSU9EIUGdEUrCOYJHX/cMlZtBk6IzZwGoHUERL85FcsX9J59NBdc X-Received: by 2002:a17:902:bf4c:b0:15c:3d1b:8a47 with SMTP id u12-20020a170902bf4c00b0015c3d1b8a47mr20810904pls.118.1650964392524; Tue, 26 Apr 2022 02:13:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650964392; cv=none; d=google.com; s=arc-20160816; b=sNtP/oOkHxEvmAB/7zV14bdkK6OhIdhtXDtlEr2DuqJ+AcA9HbIbT/qwivwBveoyJ9 wPTalfBdWfVayu0P+38yK55RXFJhrByvl11ksRPee1stsGCfCymy9mPZ6+I7JFgb3vdf 6xQXzRffy5RAstvM8A8nT43qV5zTUYV3BXULi7+uVXPOi562jL4u/8njSpFympIDB96M grdgvio2BAd4NuF9ssIRUKz//WieLWIARb3erglgj2f5Xj2AWWruiUSrDpxovd7srO6a 7KJNDKvmAJxFWKX3uDtXC7xTed/yQDqYWDIAvOvmLW9PBUp5jXT8LNvye8pzzNiO7WEZ aFZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:to:content-language:subject:user-agent:mime-version:date :message-id:dkim-signature; bh=3xdUpz0rxOpaFXzw5F0nSyIQaIXNBm7+paVzz99k0qk=; b=H6/7p6XwFHBR7EBx1YaHY09i5cIi9reAjPhnOUH/XDoDaQbNsu4//H1KZ+5x24Ouvi m0iH7+BtOrgQDhkKwgocgpE09kSBPoZL+Y8Bpggkn7gqYqbhyE5oRoylYixr7JQsjL00 8EoXFvZLVe4Guea5jmXth7nW5YhxIDtkZ2ols6GUF2sz93rLh1Z9yTamSTrrgAM50vz7 vDN/kQiZCPzgfzuwzH4VElmQdFKM+oQqDxg5575Rc10vzAMNmP4WaZz83QyFvMstpJ7+ dm2ggROtjTewOwbEHSAbHJJjjtx1eRNjowGLexAzO/2ziLcy88VPx2SEJ+JYCMkzupk7 QBiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@denx.de header.s=phobos-20191101 header.b="QH0u//pM"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p12-20020a1709028a8c00b00153b2d1649esi17764353plo.166.2022.04.26.02.12.58; Tue, 26 Apr 2022 02:13:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@denx.de header.s=phobos-20191101 header.b="QH0u//pM"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231514AbiDYW1c (ORCPT + 99 others); Mon, 25 Apr 2022 18:27:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343681AbiDYWKZ (ORCPT ); Mon, 25 Apr 2022 18:10:25 -0400 Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A8181D33F; Mon, 25 Apr 2022 15:07:16 -0700 (PDT) Received: from [127.0.0.1] (p578adb1c.dip0.t-ipconnect.de [87.138.219.28]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: marex@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id 6C6E6806B7; Tue, 26 Apr 2022 00:07:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1650924434; bh=3xdUpz0rxOpaFXzw5F0nSyIQaIXNBm7+paVzz99k0qk=; h=Date:Subject:To:References:From:In-Reply-To:From; b=QH0u//pMrhzlghzFLFFQUSLoTUPjS9kwA5AOm14Y6mj84GUj+/pSvTa6HAUNWMH3i E6OyUUUl0+Jx7TdyYh9IKkBf9OUbzYQhewlQ9zikp5CZqQq+JivK4CkZfk4F/THr9b jgLdExXdNzLJvAQM4tGKstaAklhCJdUtZHn2IAkyAjo4qvnM0rFYVCyqkwk0V6qw21 dQc6ITPuRK/dWI+cT2jIVWVQNXV8UY6DpNxKartwFKkJnxVLopj/Zl1OvlKcQfhKId hc2pW/tTqN7EmA2FL8zIdUS/2s3+2hsEk6W/HtsQSgumfP2drMM/INNDvp6UiMgNkS aqMqT/0qvR4Hw== Message-ID: <580a2c04-67ca-17f3-54ec-5b07ca46c254@denx.de> Date: Tue, 26 Apr 2022 00:07:13 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH] pinctrl: stm32: improve bank clocks management Content-Language: en-US To: Fabien DESSENNE , Linus Walleij , Maxime Coquelin , Alexandre Torgue , linux-gpio@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20220422143608.226580-1-fabien.dessenne@foss.st.com> <442677d2-7e9f-14f0-4b5a-1f98a8f40c8a@foss.st.com> From: Marek Vasut In-Reply-To: <442677d2-7e9f-14f0-4b5a-1f98a8f40c8a@foss.st.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/25/22 11:27, Fabien DESSENNE wrote: > Hi Marek > > > On 22/04/2022 18:26, Marek Vasut wrote: >> On 4/22/22 16:36, Fabien Dessenne wrote: >>> Instead of enabling/disabling the clock at each IO configuration update, >>> just keep the clock enabled from the probe. >>> This makes things simpler and more efficient (e.g. the time required to >>> toggle an output IO is drastically decreased) without significantly >>> increasing the power consumption. >> >> [...] >> >>>   static struct irq_domain *stm32_pctrl_get_irq_domain(struct >>> device_node *np) >>> @@ -1575,6 +1537,10 @@ int stm32_pctl_probe(struct platform_device >>> *pdev) >>>               ret = stm32_gpiolib_register_bank(pctl, child); >>>               if (ret) { >>>                   of_node_put(child); >>> + >>> +                for (i = 0; i < pctl->nbanks; i++) >>> +                    clk_disable_unprepare(pctl->banks[i].clk); >>> + >> >> There are clk_bulk_*() functions, maybe you can use those to get rid >> of these loops ? > > This sounds goods, but checking more in details I see that moving to the > 'bulk' implementation would require to move the clk information from the > "struct stm32_gpio_bank *banks" member to its parent "struct > stm32_pinctrl". > > This would make the clk device information stored in a different > structure from the other device-related information (base address, reset > control, ...). It's better to keep all those information together in the > same struct. > > As another drawback we would loose access to 'clk' from any function > that have 'bank' (or 'struct gpio_chip *chip') as input parameter (e.g. > stm32_gpio_get() called from gpiolib). > > So I really prefer to keep the current implementation. All right, I agree. >> The rest looks good to me. Reviewed-by: Marek Vasut