Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp281170pxb; Thu, 31 Mar 2022 05:26:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwB0HkJLAihkiP/HufxafO6QB6dJysNIzioJuMUluVrUINAkMYwQIEYQVUQpI37rBrEfOGI X-Received: by 2002:a17:902:e889:b0:14f:c4bc:677b with SMTP id w9-20020a170902e88900b0014fc4bc677bmr5023482plg.68.1648729565300; Thu, 31 Mar 2022 05:26:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648729565; cv=none; d=google.com; s=arc-20160816; b=fWmQqrkOAJcaKcsNAbxc+UaCj6B+jw7Rd4iNaihvc9AKw5fMf9XFQgAFg3zlcR5anm Bqt2kl1Q5ZEe2I9p3heIXcaNs4Ro7izWnt80tpUVehBVgBibq1QZFxtoQJUF4vEWuMQo XTAXULJQkGWM8n0Bwoyj6CqPq0FqFjad68ZbUia8Yn2NQsfjSJinfIqNIdzJulGU2JR1 juvsEJ0T4kU+O80EaeCZ/oTQhyHLqqz/hxe4DS1qN/WzymRWOIjJ4rrfz1U6j2ml0f23 sc9gYU5/kf5EfRA0m5a2uq5pidO+mjE4V84lwIRLQy6Ma1oI3TpOnv+meBhlQ+00iBVl U4bQ== 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; bh=F0BCbd+QIoy4iMxbjDKTBFcaQOAS6bK5eTi/aA8JG4U=; b=QX9bxrqvYHD+Nz8PShI0bOETKQX+9C+wn7kwQYgSEYdhHMaeR9XqZ+5TbygSUY4/X9 pIR8yJws9qdc7yCmfuoxbqZfeQzZrRRgOu4VBgpQTveIVlp0bflLvqHar9KTt0lr83we C6qBajTIIMtjCSGgobbsE+IhIeb5ul113BA2bCHIn6Dnm6zutqhzxntXbId8wzBzV/Le QJ6Nyu84E40Ap2lxNqe7sjU9BoSl6NTp+o+mwMLdUaBTNUZ1AxfCJeq3Huz1uLtjgpWx pq3VaQ5tKM0ytZUgv+6Z3nBS9bTlnFP/uyI9Z32PKJiNXV7pnkYLLXCAJVl0F8/TBuJ7 KXXA== ARC-Authentication-Results: i=1; mx.google.com; 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 f8-20020a170902ce8800b00153b2d1650bsi25537710plg.275.2022.03.31.05.25.53; Thu, 31 Mar 2022 05:26:05 -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; 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 S234943AbiCaLLf (ORCPT + 99 others); Thu, 31 Mar 2022 07:11:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34054 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233340AbiCaLLd (ORCPT ); Thu, 31 Mar 2022 07:11:33 -0400 Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9202C33884; Thu, 31 Mar 2022 04:09:46 -0700 (PDT) Received: from mail-wm1-f47.google.com ([209.85.128.47]) by mrelayeu.kundenserver.de (mreue010 [213.165.67.97]) with ESMTPSA (Nemesis) id 1MmDVA-1oHm4e41eC-00iCg9; Thu, 31 Mar 2022 13:09:45 +0200 Received: by mail-wm1-f47.google.com with SMTP id n63-20020a1c2742000000b0038d0c31db6eso1795830wmn.1; Thu, 31 Mar 2022 04:09:44 -0700 (PDT) X-Gm-Message-State: AOAM530INeJhUyv5hTt1xlNCMP/TyN4P4MdYtbgp3t0YnqZOIslYlVKg Rl4p27tp/QYUl7zF9X660PPR6EEfdc+Xu894ZDQ= X-Received: by 2002:a05:600c:1e0b:b0:38c:9ac5:b486 with SMTP id ay11-20020a05600c1e0b00b0038c9ac5b486mr3913978wmb.71.1648718552480; Thu, 31 Mar 2022 02:22:32 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Arnd Bergmann Date: Thu, 31 Mar 2022 11:22:16 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v12 5/9] clk: Add Sunplus SP7021 clock driver To: Qin Jian Cc: Krzysztof Kozlowski , Rob Herring , Michael Turquette , Stephen Boyd , Thomas Gleixner , Marc Zyngier , Philipp Zabel , Russell King - ARM Linux , Arnd Bergmann , Linux ARM , DTML , Linux Kernel Mailing List , linux-clk Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:EZyyEWyEMOU9SLsFVTSJz5+xXPGenqIY6YVzxSAVJPwSyeitGdv tP3jJeb1oqHB4ap9WCt8EMPp4V7dIAtHV7oPtiADTIOndc56vVfxwGbIDb2A/VGmJvlbUQf tklCGkC8EFdJmjLhWYNPCfRcGHDRBtb90pem18oEplQmb3jwqIFh91776xK+Uq+fFK6QPTU Ci1Gxl45DHzAkUfPj2KZw== X-UI-Out-Filterresults: notjunk:1;V03:K0:YkAHc5UKE0I=:yiFaEkbErLxW5htSyxiAuo XpVqbSp97TMKGxcdgtgjlaNMx4qu5wPIlTAPLHe4zBjFSvVWOYdCm7w+vPocf5VAH8aE0WvLN Ri5NOmcfzUhb5JhO8rRGWaThiI/h5IDvUptyI4Xwg5kEKALoZsqzl9acKTJsb/MeZF1WsbY0N PCtbqDOLUS3zKQayZt4rR/IspX9Eyqp6/fh2ZQKKlspwsMTQuI3e2CshnQTZm4TM/maMYPS30 6BOFcJBSedTx1ilj9JO/4426nl+yanqogLgqKRTpP069EO2CxipR+fPStixazzJaK3/eA/cWn XYeiwiMyuP762BGbLx2/R4Bvo71C0nIgxQsC4hZ4hw93OBTyL8hFT0OQ1A3zNWyBYAsdWnqKv G9PTzuhyEMh4eMW42D/rkPwcBM+dxWe8QHBVoZ/zXUO5Ee/8ea7UPx0m94OkQBWw/FG2uZNFS hOZppkpxyHXNzsx/SlXGYH+hf64dW5pOyP83Cv8v4Amj1H0AARNgvIbqDiszfOhOK1Zx/I/5B 15WEY7Swao4lnEldLot+wlR4HztobZk4jTRZyyxnCzlX+khGojf9wJ3trerJS6MPACE58azyW r5iXXgf0jf8R4RnH7q/WDRCQEpKoW1EnMiYkHmXj8n/dNePyocXenXS+MVwBPDHx9NdFHub4z Z6/6FIGlyHiTjNIrkZWilcuT28I0S1nuCDgNv/N+lODPwf1NO6dn7f2wZeTRTeIvGLTMK1SGO VuIFID5UBWY+3aaQa4fcDfEy8W3WF+HQg9XXIqSF9lpJsn3rAfeQBBGIzrkv7MgJT7gA0UNOw v30omITtNA52kqHi4G49kCniQVXfmfphD+pXVrFlVvkswk9mSE= X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE 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 Thu, Mar 31, 2022 at 10:29 AM Qin Jian wrote: > +static int sp_pll_enable(struct clk_hw *hw) > +{ > + struct sp_pll *clk = to_sp_pll(hw); > + unsigned long flags; > + > + spin_lock_irqsave(clk->lock, flags); > + writel(BIT(clk->pd_bit + 16) | BIT(clk->pd_bit), clk->reg); /* power up */ > + spin_unlock_irqrestore(clk->lock, flags); > + > + return 0; > +} > + > +static void sp_pll_disable(struct clk_hw *hw) > +{ > + struct sp_pll *clk = to_sp_pll(hw); > + unsigned long flags; > + > + spin_lock_irqsave(clk->lock, flags); > + writel(BIT(clk->pd_bit + 16), clk->reg); /* power down */ > + spin_unlock_irqrestore(clk->lock, flags); > +} What does the spinlock actually protect here? As writel() is posted, it can already leak of of the lock, and the inputs would appear to be constant. > + /* This memory region include multi HW regs in discontinuous order. > + * clk driver used some discontinuous areas in the memory region. > + * Using devm_platform_ioremap_resource() would conflicted with other drivers. > + */ > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + sp_clk_base = devm_ioremap(dev, res->start, resource_size(res)); > + if (!sp_clk_base) > + return -ENXIO; Can you explain this comment in more detail? Generally, the 'reg' properties of drivers should not overlap, so it is supposed to be safe to call devm_platform_ioremap_resource() here. We discussed this in the context of the iop driver that did have overlapping registers with this driver, and that was incorrect. Are there any other drivers that conflict with the clk driver? Arnd