[PATCH v2 00/11] clk: mediatek: Move to struct clk_hw provider APIs
Chen-Yu Tsai
wenst at chromium.org
Tue May 10 03:47:53 PDT 2022
Hi everyone,
This is v2 of part 2 of my proposed MediaTek clk driver cleanup work [1].
Changes since v1:
- Rebased and added coverage of new MT8186 clk drivers
- Split patch "clk: mediatek: Replace 'struct clk' with 'struct clk_hw'"
into arbitrary pieces so that they don't bounce from the mailing lists
This was tested on MT8183 Juniper. Apppreciate any help testing on non-
ChromeOS devices.
I'm not sure how this is supposed to be merged. Patches 3~8 need to be
squashed together for bisectability, and the same goes for patches 9+10.
Maybe after review, I could squash them and send a pull request? Or the
patches could be put on a separate topic branch? That would be bad if
we needed to revert the branch and other stuff was based on it though.
Original cover letter from v1, with patch numbers fixed:
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~8 finish 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 9 moves most of the MediaTek clk driver library from clk_register*()
to clk_hw_register*, including all intermediate helpers, using
coccinelle scripts.
Patch 10 fixes, by hand, a build error from a call site that was not covered
by the previous patch.
Patch 11 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~8 and 9+10. Once the patches
are reviewed, they can be squashed together.
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 (11):
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: mt27xx: Replace 'struct clk' with 'struct clk_hw'
clk: mediatek: mt67xx: Replace 'struct clk' with 'struct clk_hw'
clk: mediatek: mt7xxx: Replace 'struct clk' with 'struct clk_hw'
clk: mediatek: mt8xxx: 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-mt8186-apmixedsys.c | 6 +-
drivers/clk/mediatek/clk-mt8186-mcu.c | 6 +-
drivers/clk/mediatek/clk-mt8186-mm.c | 6 +-
drivers/clk/mediatek/clk-mt8186-topckgen.c | 6 +-
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 +-
95 files changed, 543 insertions(+), 554 deletions(-)
--
2.36.0.512.ge40c2bad7a-goog
More information about the Linux-mediatek
mailing list