From patchwork Tue Apr 19 08:12:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen-Yu Tsai X-Patchwork-Id: 12817606 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 23793C433FE for ; Tue, 19 Apr 2022 08:15:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=cevxHwlB9uX8kbSYBGH4f4aTs+pPoD06E7/usPNZbYw=; b=CSHDPjjwefZrDj pcHWXn7vzTpAXsBCYr2uxDrpU6GCo+nlKXSufiJh0h5Fy8T4mrPHW+Ywgswsvr332d0vcGnhx2aMz wo5BaAXr1b0HhBLcZKuB0wMeaJ+LkjWSFnJIZJ7AxMzA+g19rQNJOta44u+Ey//+iL/IPLLRPLOF3 5EOgoQJSSt4JqVWImzezb0xHEhdnnr94vnXdbeVqXU2JG81qDJsUB9wjjcVZ/fMi4ixLKAa7fbVHs S1KN5JLnOK/fN6FeWjbZ83Y1yWXgdRkqiwSRiCHWFiZ/0kMnsAzXlVsoiHKQ9up8SSUAN10hid/jv viVMITUavqUCaWn/yWiQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngj1D-002EnQ-Tt; Tue, 19 Apr 2022 08:15:27 +0000 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ngiz6-002DgO-Mi for linux-mediatek@lists.infradead.org; Tue, 19 Apr 2022 08:13:29 +0000 Received: by mail-pl1-x62c.google.com with SMTP id t12so14681178pll.7 for ; Tue, 19 Apr 2022 01:13:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=uJS2hJenJldyL6QnmX1ihHYBKXvEoZf1gwDmlsvsiH0=; b=Mr4oR8QDQY1eJMvYaK3mFzBcZsdZ2spX8b15ThU1VejxeKtT79otFJBVC9nj2qDzZX hyuigr73nga9epHNJeZcqbwi4n8FB4X+EadSjNLM7FdSPpVRCBw47cRR0tV76gdfTJmM aUAau/ooxvj56ME07V+rqlvhfcfpNOH1syqzc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=uJS2hJenJldyL6QnmX1ihHYBKXvEoZf1gwDmlsvsiH0=; b=Iw65IJom+XODqOuplAIcTxuZrBZ3T97VkED10n5eKpLEeM54AFf4aqYQap9r+r3gPC GyYow69MFsnyFb6WsOtoWPVne+FfNyd87hczz1JkFoXGb1r93jEqz4mZkxTKtImYdbk7 SuImXPWUqeO68O0lBFK2OhrXSVQSRLszyzBz2/l9iBRdEl5mKEPry7J8UIMkHkzOATU4 4w6LOGyNpvRjVdJhTN84sNM89UPwad8ECSlEV6Pn/y1fhC6qfh6aUMjT5w0VLVRid6Gj 3H3YUPypAmz+7l9Pjf1eK0FfWJ0Pfmq+E1tMEhEZp+IvQdrF/Wy947GtDXIj3TMD+vmj qo6g== X-Gm-Message-State: AOAM5333aZ/u+z8irHwSqa+kLiZ3czFPjv7wDlcFxZGFNxagKgsKbiy9 sQKFaznhGvpM4SIWTZllAVpMBw== X-Google-Smtp-Source: ABdhPJxXfBzegevdRA3wHfXndcdUtZ91I5IAndHrDASqCN9KGF95zjolQiA9hcRRUItZ6pCeQdxS0g== X-Received: by 2002:a17:90b:3810:b0:1d1:b184:1ead with SMTP id mq16-20020a17090b381000b001d1b1841eadmr17449829pjb.89.1650355979845; Tue, 19 Apr 2022 01:12:59 -0700 (PDT) Received: from wenstp920.tpe.corp.google.com ([2401:fa00:1:10:33f6:f1e6:3e21:a253]) by smtp.gmail.com with ESMTPSA id n13-20020a654ccd000000b0039db6f73e9dsm15767448pgt.28.2022.04.19.01.12.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Apr 2022 01:12:59 -0700 (PDT) From: Chen-Yu Tsai To: Michael Turquette , Stephen Boyd , Chun-Jie Chen , Miles Chen , Rex-BC Chen Cc: Chen-Yu Tsai , Matthias Brugger , linux-clk@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 0/7] clk: mediatek: Move to struct clk_hw provider APIs Date: Tue, 19 Apr 2022 16:12:39 +0800 Message-Id: <20220419081246.2546159-1-wenst@chromium.org> X-Mailer: git-send-email 2.36.0.rc0.470.gd361397f0d-goog MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220419_011316_814456_12E81DAB X-CRM114-Status: GOOD ( 21.41 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Hi everyone, This is part 2 of my proposed MediaTek clk driver cleanup work [1]. Part 2 involves moving the whole MediaTek clk driver library from the old `struct clk` provider API to the new `struct clk_hw` provider API. Parts of this series were done with coccinelle scripts, while others were done by hand. To facilitate review, these parts are currently split into different patches. As a result however, this series is not fully bisectable. Later on, the related parts should be squashed together. Patch 1 and 2 are minor cleanups around code that is touched by later patches. Patch 3 starts the switch of the underlying data structure used to hold clocks from `struct clk_onecell_data` to `struct clk_hw_onecell_data`. This part is done by hand. The helpers used to allocate the data structures are changed, but none of the actual call sites, nor the clk provider API usage. Patch 4 finishes the switch from `struct clk_onecell_data` to `struct clk_hw_onecell_data`. All the holding variables and call sites that involve `struct clk_onecell_data` are changed using coccinelle scripts. Patch 5 moves most of the MediaTek clk driver library from clk_register*() to clk_hw_register*, including all intermediate helpers, using coccinelle scripts. Patch 6 fixes, by hand, a build error from a call site that was not covered by the previous patch. Patch 7 converts the last usage of clk_register*() in the MediaTek clk drivers. As mentioned above, this series includes parts that don't build, but are split out for clarity. These are patches 3 and 5. Once the patches are reviewed, they shall be squashed together. This series doesn't cover the new MT8186 clk driver, which is fully reviewed on the mailing lists, but not yet queued up. I think it would be better to have that series merged, and I can rerun the coccinelle scripts to add coverage. This series will likely conflict with Rex's "Cleanup MediaTek clk reset drivers" that was posted earlier today. We'll see how these work out. The next phase of the cleanup/improvement shall be to introduce some variant of `struct clk_parent_data` to describe clk relationships efficiently. Please have a look. Thanks ChenYu [1] https://lore.kernel.org/linux-clk/20220122091731.283592-1-wenst@chromium.org/ Chen-Yu Tsai (7): clk: mediatek: Make mtk_clk_register_composite() static clk: mediatek: apmixed: Drop error message from clk_register() failure clk: mediatek: Convert mtk_{alloc,free}_clk_data to struct clk_hw clk: mediatek: Replace 'struct clk' with 'struct clk_hw' clk: mediatek: Switch to clk_hw provider APIs clk: mediatek: mt8173: Fix usage of mtk_clk_register_ref2usb_tx() clk: mediatek: mt8173: Switch to clk_hw provider APIs drivers/clk/mediatek/clk-apmixed.c | 12 +- drivers/clk/mediatek/clk-cpumux.c | 50 +++--- drivers/clk/mediatek/clk-cpumux.h | 6 +- drivers/clk/mediatek/clk-gate.c | 52 +++--- drivers/clk/mediatek/clk-gate.h | 8 +- drivers/clk/mediatek/clk-mt2701-aud.c | 4 +- drivers/clk/mediatek/clk-mt2701-bdp.c | 4 +- drivers/clk/mediatek/clk-mt2701-eth.c | 4 +- drivers/clk/mediatek/clk-mt2701-g3d.c | 4 +- drivers/clk/mediatek/clk-mt2701-hif.c | 4 +- drivers/clk/mediatek/clk-mt2701-img.c | 4 +- drivers/clk/mediatek/clk-mt2701-mm.c | 4 +- drivers/clk/mediatek/clk-mt2701-vdec.c | 4 +- drivers/clk/mediatek/clk-mt2701.c | 26 +-- drivers/clk/mediatek/clk-mt2712-bdp.c | 4 +- drivers/clk/mediatek/clk-mt2712-img.c | 4 +- drivers/clk/mediatek/clk-mt2712-jpgdec.c | 4 +- drivers/clk/mediatek/clk-mt2712-mfg.c | 4 +- drivers/clk/mediatek/clk-mt2712-mm.c | 4 +- drivers/clk/mediatek/clk-mt2712-vdec.c | 4 +- drivers/clk/mediatek/clk-mt2712-venc.c | 4 +- drivers/clk/mediatek/clk-mt2712.c | 28 +-- drivers/clk/mediatek/clk-mt6765-audio.c | 4 +- drivers/clk/mediatek/clk-mt6765-cam.c | 4 +- drivers/clk/mediatek/clk-mt6765-img.c | 4 +- drivers/clk/mediatek/clk-mt6765-mipi0a.c | 4 +- drivers/clk/mediatek/clk-mt6765-mm.c | 4 +- drivers/clk/mediatek/clk-mt6765-vcodec.c | 4 +- drivers/clk/mediatek/clk-mt6765.c | 12 +- drivers/clk/mediatek/clk-mt6779-aud.c | 4 +- drivers/clk/mediatek/clk-mt6779-cam.c | 4 +- drivers/clk/mediatek/clk-mt6779-img.c | 4 +- drivers/clk/mediatek/clk-mt6779-ipe.c | 4 +- drivers/clk/mediatek/clk-mt6779-mfg.c | 4 +- drivers/clk/mediatek/clk-mt6779-mm.c | 4 +- drivers/clk/mediatek/clk-mt6779-vdec.c | 4 +- drivers/clk/mediatek/clk-mt6779-venc.c | 4 +- drivers/clk/mediatek/clk-mt6779.c | 12 +- drivers/clk/mediatek/clk-mt6797-img.c | 4 +- drivers/clk/mediatek/clk-mt6797-mm.c | 4 +- drivers/clk/mediatek/clk-mt6797-vdec.c | 4 +- drivers/clk/mediatek/clk-mt6797-venc.c | 4 +- drivers/clk/mediatek/clk-mt6797.c | 22 +-- drivers/clk/mediatek/clk-mt7622-aud.c | 4 +- drivers/clk/mediatek/clk-mt7622-eth.c | 8 +- drivers/clk/mediatek/clk-mt7622-hif.c | 8 +- drivers/clk/mediatek/clk-mt7622.c | 30 ++-- drivers/clk/mediatek/clk-mt7629-eth.c | 8 +- drivers/clk/mediatek/clk-mt7629-hif.c | 8 +- drivers/clk/mediatek/clk-mt7629.c | 30 ++-- drivers/clk/mediatek/clk-mt7986-apmixed.c | 6 +- drivers/clk/mediatek/clk-mt7986-eth.c | 12 +- drivers/clk/mediatek/clk-mt7986-infracfg.c | 4 +- drivers/clk/mediatek/clk-mt7986-topckgen.c | 16 +- drivers/clk/mediatek/clk-mt8135.c | 18 +- drivers/clk/mediatek/clk-mt8167-aud.c | 4 +- drivers/clk/mediatek/clk-mt8167-img.c | 4 +- drivers/clk/mediatek/clk-mt8167-mfgcfg.c | 4 +- drivers/clk/mediatek/clk-mt8167-mm.c | 4 +- drivers/clk/mediatek/clk-mt8167-vdec.c | 4 +- drivers/clk/mediatek/clk-mt8167.c | 12 +- drivers/clk/mediatek/clk-mt8173-mm.c | 4 +- drivers/clk/mediatek/clk-mt8173.c | 69 ++++---- drivers/clk/mediatek/clk-mt8183-audio.c | 4 +- drivers/clk/mediatek/clk-mt8183-cam.c | 4 +- drivers/clk/mediatek/clk-mt8183-img.c | 4 +- drivers/clk/mediatek/clk-mt8183-ipu0.c | 4 +- drivers/clk/mediatek/clk-mt8183-ipu1.c | 4 +- drivers/clk/mediatek/clk-mt8183-ipu_adl.c | 4 +- drivers/clk/mediatek/clk-mt8183-ipu_conn.c | 4 +- drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 4 +- drivers/clk/mediatek/clk-mt8183-mm.c | 4 +- drivers/clk/mediatek/clk-mt8183-vdec.c | 4 +- drivers/clk/mediatek/clk-mt8183-venc.c | 4 +- drivers/clk/mediatek/clk-mt8183.c | 25 +-- drivers/clk/mediatek/clk-mt8192-aud.c | 4 +- drivers/clk/mediatek/clk-mt8192-mm.c | 4 +- drivers/clk/mediatek/clk-mt8192.c | 21 +-- drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 6 +- drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 6 +- drivers/clk/mediatek/clk-mt8195-topckgen.c | 6 +- drivers/clk/mediatek/clk-mt8195-vdo0.c | 6 +- drivers/clk/mediatek/clk-mt8195-vdo1.c | 6 +- drivers/clk/mediatek/clk-mt8516-aud.c | 4 +- drivers/clk/mediatek/clk-mt8516.c | 12 +- drivers/clk/mediatek/clk-mtk.c | 173 +++++++++---------- drivers/clk/mediatek/clk-mtk.h | 25 ++- drivers/clk/mediatek/clk-mux.c | 50 +++--- drivers/clk/mediatek/clk-mux.h | 6 +- drivers/clk/mediatek/clk-pll.c | 52 +++--- drivers/clk/mediatek/clk-pll.h | 6 +- 91 files changed, 531 insertions(+), 542 deletions(-)