Message ID | 20230206152928.918562-1-angelogioacchino.delregno@collabora.com (mailing list archive) |
---|---|
Headers | show |
Series | MediaTek clocks: full module build and cleanups | expand |
Il 06/02/23 16:28, AngeloGioacchino Del Regno ha scritto: > This is part 2 of the "MediaTek clocks cleanups and improvements" series, > which was already picked. > > If reading this full cover letter is too boring for you, here's a short > summary of the changes of this series: > - Added mtk_clk_pdev_probe() for mtk-mmsys probed clocks; > - Added divider clock support to common probe mechanism; > - Various cleanups here and there; > - Converted most clock drivers to platform_driver; > - MediaTek clocks can now be built as modules. > > NOTE: Applies on top of [1]. > > ...and of course I forgot to paste the link. [1]: https://patchwork.kernel.org/project/linux-mediatek/list/?series=719067 Cheers, Angelo > Full blurb: > > This huge series adds more cleanups on top, reducing size and adding more > commonization for clock drivers probe/remove, which also includes a new > common probe mechanism for multimedia clock drivers that are usually > probed by mtk-mmsys instead of a dt clock node: thanks to this, it was > finally possible to convert almost all clock drivers to the common probe > mechanism, which *finally again* makes us able to build all these drivers > as modules! > > Since this looked like being *the* way forward, I went on converting some > more drivers away from OF_CLK_DECLARE_DRIVER to full platform_driver(s), > allowing for more (actually, almost all!) drivers to be built as modules. > > While at it, I also added some more consistency in macros usage by > removing all of the duplicated full macro declaration for MediaTek gate > clocks and replacing all of those with using the GATE_MTK macro instead, > producing a nice reduction in amount of lines per file but, more > importantly, improving readability and eventual future batch changes. > > This amount of commonization will also, in my opinion, greatly improve > the review process for new clock drivers, as they will be mostly just a > list of clocks and won't contain much new code, as it's all going to be > handled in the common places, which also reduces chances to see new clock > driver related bugs emerging on one SoC or the other. > > Since I don't own devices with all of the supported MediaTek SoCs, I > could not test some of the conversions on real hardware... but I am > confident that this will work as the drivers are *very* similar on a > per-generation basis. > > This series was build-tested for all (both module and built-in build) > and was manually tested on MT6795, MT8173, MT8192, MT8195. > > AngeloGioacchino Del Regno (45): > clk: mediatek: clk-mtk: Switch to device_get_match_data() > clk: mediatek: clk-mtk: Introduce clk_mtk_pdev_{probe,remove}() > clk: mediatek: Migrate to mtk_clk_pdev_probe() for multimedia clocks > clk: mediatek: Add divider clocks to mtk_clk_simple_{probe,remove}() > clk: mediatek: mt2712: Migrate topckgen/mcucfg to > mtk_clk_simple_probe() > clk: mediatek: mt2712: Compress clock arrays entries to 90 columns > clk: mediatek: mt2712: Add error handling to > clk_mt2712_apmixed_probe() > clk: mediatek: mt2712: Move apmixedsys clock driver to its own file > clk: mediatek: mt2712: Change to use module_platform_driver macro > clk: mediatek: mt2712: Change Kconfig options to allow module build > clk: mediatek: mt8365: Move apmixedsys clock driver to its own file > clk: mediatek: mt8365: Convert to mtk_clk_simple_{probe,remove}() > clk: mediatek: mt8167: Compress GATE_TOPx macros > clk: mediatek: mt8167: Move apmixedsys as platform_driver in new file > clk: mediatek: mt8167: Remove __initconst annotation from arrays > clk: mediatek: mt8167: Convert to mtk_clk_simple_{probe,remove}() > clk: mediatek: mt8183: Move apmixedsys clock driver to its own file > clk: mediatek: mt8183: Compress clocks arrays entries where possible > clk: mediatek: mt8183: Convert all remaining clocks to common probe > clk: mediatek: Consistently use GATE_MTK() macro > clk: mediatek: mt7622: Properly use CLK_IS_CRITICAL flag > clk: mediatek: mt7622: Move apmixedsys clock driver to its own file > clk: mediatek: mt7622: Move infracfg to clk-mt7622-infracfg.c > clk: mediatek: mt7622: Convert to platform driver and simple probe > clk: mediatek: mt8516: Move apmixedsys clock driver to its own file > clk: mediatek: mt8516: Convert to platform driver and simple probe > clk: mediatek: mt8516: Allow building clock drivers as modules > clk: mediatek: Propagate struct device with > mtk_clk_register_dividers() > clk: mediatek: mt7986-apmixed: Use PLL_AO flag to set critical clock > clk: mediatek: mt7986-infracfg: Migrate to common probe mechanism > clk: mediatek: mt7986-eth: Migrate to common probe mechanism > clk: mediatek: mt8186-mcu: Migrate to common probe mechanism > clk: mediatek: Switch to module_platform_driver() where possible > clk: mediatek: Add MODULE_LICENSE() where missing > clk: mediatek: Split MT8195 clock drivers and allow module build > clk: mediatek: Allow building MT8192 non-critical clocks as modules > clk: mediatek: Allow MT7622 clocks to be built as modules > clk: mediatek: Allow all MT8167 clocks to be built as modules > clk: mediatek: Allow all MT8183 clocks to be built as modules > clk: mediatek: Allow building most MT6765 clock drivers as modules > clk: mediatek: Allow building most MT6797 clock drivers as modules > clk: mediatek: Split configuration options for MT8186 clock drivers > clk: mediatek: mt8192: Move apmixedsys clock driver to its own file > clk: mediatek: Kconfig: Allow module build for core mt8192 clocks > clk: mediatek: Add MODULE_DEVICE_TABLE() where appropriate > > drivers/clk/mediatek/Kconfig | 282 +++-- > drivers/clk/mediatek/Makefile | 53 +- > drivers/clk/mediatek/clk-mt2701-aud.c | 49 +- > drivers/clk/mediatek/clk-mt2701-bdp.c | 27 +- > drivers/clk/mediatek/clk-mt2701-eth.c | 16 +- > drivers/clk/mediatek/clk-mt2701-g3d.c | 16 +- > drivers/clk/mediatek/clk-mt2701-hif.c | 16 +- > drivers/clk/mediatek/clk-mt2701-img.c | 15 +- > drivers/clk/mediatek/clk-mt2701-mm.c | 56 +- > drivers/clk/mediatek/clk-mt2701-vdec.c | 27 +- > drivers/clk/mediatek/clk-mt2701.c | 48 +- > drivers/clk/mediatek/clk-mt2712-apmixedsys.c | 154 +++ > drivers/clk/mediatek/clk-mt2712-bdp.c | 16 +- > drivers/clk/mediatek/clk-mt2712-img.c | 15 +- > drivers/clk/mediatek/clk-mt2712-jpgdec.c | 16 +- > drivers/clk/mediatek/clk-mt2712-mfg.c | 15 +- > drivers/clk/mediatek/clk-mt2712-mm.c | 66 +- > drivers/clk/mediatek/clk-mt2712-vdec.c | 27 +- > drivers/clk/mediatek/clk-mt2712-venc.c | 16 +- > drivers/clk/mediatek/clk-mt2712.c | 1016 +++++------------ > drivers/clk/mediatek/clk-mt6765-audio.c | 27 +- > drivers/clk/mediatek/clk-mt6765-cam.c | 16 +- > drivers/clk/mediatek/clk-mt6765-img.c | 15 +- > drivers/clk/mediatek/clk-mt6765-mipi0a.c | 16 +- > drivers/clk/mediatek/clk-mt6765-mm.c | 15 +- > drivers/clk/mediatek/clk-mt6765-vcodec.c | 16 +- > drivers/clk/mediatek/clk-mt6765.c | 90 +- > drivers/clk/mediatek/clk-mt6779-aud.c | 1 + > drivers/clk/mediatek/clk-mt6779-cam.c | 1 + > drivers/clk/mediatek/clk-mt6779-img.c | 1 + > drivers/clk/mediatek/clk-mt6779-ipe.c | 1 + > drivers/clk/mediatek/clk-mt6779-mfg.c | 1 + > drivers/clk/mediatek/clk-mt6779-mm.c | 25 +- > drivers/clk/mediatek/clk-mt6779-vdec.c | 1 + > drivers/clk/mediatek/clk-mt6779-venc.c | 1 + > drivers/clk/mediatek/clk-mt6779.c | 1 + > drivers/clk/mediatek/clk-mt6795-apmixedsys.c | 1 + > drivers/clk/mediatek/clk-mt6795-infracfg.c | 1 + > drivers/clk/mediatek/clk-mt6795-mfg.c | 1 + > drivers/clk/mediatek/clk-mt6795-mm.c | 56 +- > drivers/clk/mediatek/clk-mt6795-pericfg.c | 1 + > drivers/clk/mediatek/clk-mt6795-topckgen.c | 1 + > drivers/clk/mediatek/clk-mt6795-vdecsys.c | 1 + > drivers/clk/mediatek/clk-mt6795-vencsys.c | 1 + > drivers/clk/mediatek/clk-mt6797-img.c | 15 +- > drivers/clk/mediatek/clk-mt6797-mm.c | 56 +- > drivers/clk/mediatek/clk-mt6797-vdec.c | 27 +- > drivers/clk/mediatek/clk-mt6797-venc.c | 16 +- > drivers/clk/mediatek/clk-mt6797.c | 47 +- > drivers/clk/mediatek/clk-mt7622-apmixedsys.c | 138 +++ > drivers/clk/mediatek/clk-mt7622-aud.c | 49 +- > drivers/clk/mediatek/clk-mt7622-eth.c | 27 +- > drivers/clk/mediatek/clk-mt7622-hif.c | 27 +- > drivers/clk/mediatek/clk-mt7622-infracfg.c | 129 +++ > drivers/clk/mediatek/clk-mt7622.c | 375 +----- > drivers/clk/mediatek/clk-mt7629-eth.c | 25 +- > drivers/clk/mediatek/clk-mt7629-hif.c | 27 +- > drivers/clk/mediatek/clk-mt7629.c | 46 +- > drivers/clk/mediatek/clk-mt7981-apmixed.c | 2 + > drivers/clk/mediatek/clk-mt7981-eth.c | 3 +- > drivers/clk/mediatek/clk-mt7981-infracfg.c | 4 +- > drivers/clk/mediatek/clk-mt7981-topckgen.c | 4 +- > drivers/clk/mediatek/clk-mt7986-apmixed.c | 8 +- > drivers/clk/mediatek/clk-mt7986-eth.c | 115 +- > drivers/clk/mediatek/clk-mt7986-infracfg.c | 93 +- > drivers/clk/mediatek/clk-mt7986-topckgen.c | 4 +- > drivers/clk/mediatek/clk-mt8135.c | 31 +- > drivers/clk/mediatek/clk-mt8167-apmixedsys.c | 145 +++ > drivers/clk/mediatek/clk-mt8167-aud.c | 47 +- > drivers/clk/mediatek/clk-mt8167-img.c | 50 +- > drivers/clk/mediatek/clk-mt8167-mfgcfg.c | 50 +- > drivers/clk/mediatek/clk-mt8167-mm.c | 69 +- > drivers/clk/mediatek/clk-mt8167-vdec.c | 59 +- > drivers/clk/mediatek/clk-mt8167.c | 390 ++----- > drivers/clk/mediatek/clk-mt8173-apmixedsys.c | 1 + > drivers/clk/mediatek/clk-mt8173-img.c | 1 + > drivers/clk/mediatek/clk-mt8173-infracfg.c | 1 + > drivers/clk/mediatek/clk-mt8173-mm.c | 82 +- > drivers/clk/mediatek/clk-mt8173-pericfg.c | 1 + > drivers/clk/mediatek/clk-mt8173-topckgen.c | 1 + > drivers/clk/mediatek/clk-mt8173-vdecsys.c | 1 + > drivers/clk/mediatek/clk-mt8173-vencsys.c | 1 + > drivers/clk/mediatek/clk-mt8183-apmixedsys.c | 194 ++++ > drivers/clk/mediatek/clk-mt8183-audio.c | 5 +- > drivers/clk/mediatek/clk-mt8183-cam.c | 5 +- > drivers/clk/mediatek/clk-mt8183-img.c | 5 +- > drivers/clk/mediatek/clk-mt8183-ipu0.c | 5 +- > drivers/clk/mediatek/clk-mt8183-ipu1.c | 5 +- > drivers/clk/mediatek/clk-mt8183-ipu_adl.c | 5 +- > drivers/clk/mediatek/clk-mt8183-ipu_conn.c | 5 +- > drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 5 +- > drivers/clk/mediatek/clk-mt8183-mm.c | 29 +- > drivers/clk/mediatek/clk-mt8183-vdec.c | 5 +- > drivers/clk/mediatek/clk-mt8183-venc.c | 5 +- > drivers/clk/mediatek/clk-mt8183.c | 747 +++--------- > drivers/clk/mediatek/clk-mt8186-apmixedsys.c | 4 +- > drivers/clk/mediatek/clk-mt8186-cam.c | 4 +- > drivers/clk/mediatek/clk-mt8186-img.c | 4 +- > .../clk/mediatek/clk-mt8186-imp_iic_wrap.c | 4 +- > drivers/clk/mediatek/clk-mt8186-infra_ao.c | 4 +- > drivers/clk/mediatek/clk-mt8186-ipe.c | 4 +- > drivers/clk/mediatek/clk-mt8186-mcu.c | 69 +- > drivers/clk/mediatek/clk-mt8186-mdp.c | 4 +- > drivers/clk/mediatek/clk-mt8186-mfg.c | 4 +- > drivers/clk/mediatek/clk-mt8186-mm.c | 59 +- > drivers/clk/mediatek/clk-mt8186-topckgen.c | 4 +- > drivers/clk/mediatek/clk-mt8186-vdec.c | 4 +- > drivers/clk/mediatek/clk-mt8186-venc.c | 4 +- > drivers/clk/mediatek/clk-mt8186-wpe.c | 4 +- > drivers/clk/mediatek/clk-mt8192-apmixedsys.c | 215 ++++ > drivers/clk/mediatek/clk-mt8192-aud.c | 5 +- > drivers/clk/mediatek/clk-mt8192-cam.c | 5 +- > drivers/clk/mediatek/clk-mt8192-img.c | 5 +- > .../clk/mediatek/clk-mt8192-imp_iic_wrap.c | 5 +- > drivers/clk/mediatek/clk-mt8192-ipe.c | 5 +- > drivers/clk/mediatek/clk-mt8192-mdp.c | 5 +- > drivers/clk/mediatek/clk-mt8192-mfg.c | 5 +- > drivers/clk/mediatek/clk-mt8192-mm.c | 34 +- > drivers/clk/mediatek/clk-mt8192-msdc.c | 5 +- > drivers/clk/mediatek/clk-mt8192-scp_adsp.c | 5 +- > drivers/clk/mediatek/clk-mt8192-vdec.c | 5 +- > drivers/clk/mediatek/clk-mt8192-venc.c | 5 +- > drivers/clk/mediatek/clk-mt8192.c | 223 +--- > drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 4 +- > drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 4 +- > drivers/clk/mediatek/clk-mt8195-cam.c | 4 +- > drivers/clk/mediatek/clk-mt8195-ccu.c | 4 +- > drivers/clk/mediatek/clk-mt8195-img.c | 4 +- > .../clk/mediatek/clk-mt8195-imp_iic_wrap.c | 4 +- > drivers/clk/mediatek/clk-mt8195-infra_ao.c | 4 +- > drivers/clk/mediatek/clk-mt8195-ipe.c | 4 +- > drivers/clk/mediatek/clk-mt8195-mfg.c | 4 +- > drivers/clk/mediatek/clk-mt8195-peri_ao.c | 4 +- > drivers/clk/mediatek/clk-mt8195-scp_adsp.c | 4 +- > drivers/clk/mediatek/clk-mt8195-topckgen.c | 4 +- > drivers/clk/mediatek/clk-mt8195-vdec.c | 4 +- > drivers/clk/mediatek/clk-mt8195-vdo0.c | 59 +- > drivers/clk/mediatek/clk-mt8195-vdo1.c | 61 +- > drivers/clk/mediatek/clk-mt8195-venc.c | 4 +- > drivers/clk/mediatek/clk-mt8195-vpp0.c | 4 +- > drivers/clk/mediatek/clk-mt8195-vpp1.c | 4 +- > drivers/clk/mediatek/clk-mt8195-wpe.c | 4 +- > drivers/clk/mediatek/clk-mt8365-apmixedsys.c | 166 +++ > drivers/clk/mediatek/clk-mt8365-apu.c | 3 +- > drivers/clk/mediatek/clk-mt8365-cam.c | 3 +- > drivers/clk/mediatek/clk-mt8365-mfg.c | 3 +- > drivers/clk/mediatek/clk-mt8365-mm.c | 42 +- > drivers/clk/mediatek/clk-mt8365-vdec.c | 3 +- > drivers/clk/mediatek/clk-mt8365-venc.c | 3 +- > drivers/clk/mediatek/clk-mt8365.c | 605 ++-------- > drivers/clk/mediatek/clk-mt8516-apmixedsys.c | 122 ++ > drivers/clk/mediatek/clk-mt8516-aud.c | 47 +- > drivers/clk/mediatek/clk-mt8516.c | 246 +--- > drivers/clk/mediatek/clk-mtk.c | 82 +- > drivers/clk/mediatek/clk-mtk.h | 7 +- > 155 files changed, 3292 insertions(+), 4355 deletions(-) > create mode 100644 drivers/clk/mediatek/clk-mt2712-apmixedsys.c > create mode 100644 drivers/clk/mediatek/clk-mt7622-apmixedsys.c > create mode 100644 drivers/clk/mediatek/clk-mt7622-infracfg.c > create mode 100644 drivers/clk/mediatek/clk-mt8167-apmixedsys.c > create mode 100644 drivers/clk/mediatek/clk-mt8183-apmixedsys.c > create mode 100644 drivers/clk/mediatek/clk-mt8192-apmixedsys.c > create mode 100644 drivers/clk/mediatek/clk-mt8365-apmixedsys.c > create mode 100644 drivers/clk/mediatek/clk-mt8516-apmixedsys.c >
On Mon, Feb 6, 2023 at 11:38 PM AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> wrote: > > Il 06/02/23 16:28, AngeloGioacchino Del Regno ha scritto: > > This is part 2 of the "MediaTek clocks cleanups and improvements" series, > > which was already picked. > > > > If reading this full cover letter is too boring for you, here's a short > > summary of the changes of this series: > > - Added mtk_clk_pdev_probe() for mtk-mmsys probed clocks; > > - Added divider clock support to common probe mechanism; > > - Various cleanups here and there; > > - Converted most clock drivers to platform_driver; > > - MediaTek clocks can now be built as modules. > > > > NOTE: Applies on top of [1]. > > > > Something broke on MT8183 Juniper, though I'm not sure what. It ended up crashing in mtk-cpufreq in a badly written error path. Once that was fixed it was endlessly looping through deferred probe. Seems like mtk-cpufreq was not able to get all its resources. ChenYu > ...and of course I forgot to paste the link. > > [1]: https://patchwork.kernel.org/project/linux-mediatek/list/?series=719067 > > Cheers, > Angelo > > > > Full blurb: > > > > This huge series adds more cleanups on top, reducing size and adding more > > commonization for clock drivers probe/remove, which also includes a new > > common probe mechanism for multimedia clock drivers that are usually > > probed by mtk-mmsys instead of a dt clock node: thanks to this, it was > > finally possible to convert almost all clock drivers to the common probe > > mechanism, which *finally again* makes us able to build all these drivers > > as modules! > > > > Since this looked like being *the* way forward, I went on converting some > > more drivers away from OF_CLK_DECLARE_DRIVER to full platform_driver(s), > > allowing for more (actually, almost all!) drivers to be built as modules. > > > > While at it, I also added some more consistency in macros usage by > > removing all of the duplicated full macro declaration for MediaTek gate > > clocks and replacing all of those with using the GATE_MTK macro instead, > > producing a nice reduction in amount of lines per file but, more > > importantly, improving readability and eventual future batch changes. > > > > This amount of commonization will also, in my opinion, greatly improve > > the review process for new clock drivers, as they will be mostly just a > > list of clocks and won't contain much new code, as it's all going to be > > handled in the common places, which also reduces chances to see new clock > > driver related bugs emerging on one SoC or the other. > > > > Since I don't own devices with all of the supported MediaTek SoCs, I > > could not test some of the conversions on real hardware... but I am > > confident that this will work as the drivers are *very* similar on a > > per-generation basis. > > > > This series was build-tested for all (both module and built-in build) > > and was manually tested on MT6795, MT8173, MT8192, MT8195. > > > > AngeloGioacchino Del Regno (45): > > clk: mediatek: clk-mtk: Switch to device_get_match_data() > > clk: mediatek: clk-mtk: Introduce clk_mtk_pdev_{probe,remove}() > > clk: mediatek: Migrate to mtk_clk_pdev_probe() for multimedia clocks > > clk: mediatek: Add divider clocks to mtk_clk_simple_{probe,remove}() > > clk: mediatek: mt2712: Migrate topckgen/mcucfg to > > mtk_clk_simple_probe() > > clk: mediatek: mt2712: Compress clock arrays entries to 90 columns > > clk: mediatek: mt2712: Add error handling to > > clk_mt2712_apmixed_probe() > > clk: mediatek: mt2712: Move apmixedsys clock driver to its own file > > clk: mediatek: mt2712: Change to use module_platform_driver macro > > clk: mediatek: mt2712: Change Kconfig options to allow module build > > clk: mediatek: mt8365: Move apmixedsys clock driver to its own file > > clk: mediatek: mt8365: Convert to mtk_clk_simple_{probe,remove}() > > clk: mediatek: mt8167: Compress GATE_TOPx macros > > clk: mediatek: mt8167: Move apmixedsys as platform_driver in new file > > clk: mediatek: mt8167: Remove __initconst annotation from arrays > > clk: mediatek: mt8167: Convert to mtk_clk_simple_{probe,remove}() > > clk: mediatek: mt8183: Move apmixedsys clock driver to its own file > > clk: mediatek: mt8183: Compress clocks arrays entries where possible > > clk: mediatek: mt8183: Convert all remaining clocks to common probe > > clk: mediatek: Consistently use GATE_MTK() macro > > clk: mediatek: mt7622: Properly use CLK_IS_CRITICAL flag > > clk: mediatek: mt7622: Move apmixedsys clock driver to its own file > > clk: mediatek: mt7622: Move infracfg to clk-mt7622-infracfg.c > > clk: mediatek: mt7622: Convert to platform driver and simple probe > > clk: mediatek: mt8516: Move apmixedsys clock driver to its own file > > clk: mediatek: mt8516: Convert to platform driver and simple probe > > clk: mediatek: mt8516: Allow building clock drivers as modules > > clk: mediatek: Propagate struct device with > > mtk_clk_register_dividers() > > clk: mediatek: mt7986-apmixed: Use PLL_AO flag to set critical clock > > clk: mediatek: mt7986-infracfg: Migrate to common probe mechanism > > clk: mediatek: mt7986-eth: Migrate to common probe mechanism > > clk: mediatek: mt8186-mcu: Migrate to common probe mechanism > > clk: mediatek: Switch to module_platform_driver() where possible > > clk: mediatek: Add MODULE_LICENSE() where missing > > clk: mediatek: Split MT8195 clock drivers and allow module build > > clk: mediatek: Allow building MT8192 non-critical clocks as modules > > clk: mediatek: Allow MT7622 clocks to be built as modules > > clk: mediatek: Allow all MT8167 clocks to be built as modules > > clk: mediatek: Allow all MT8183 clocks to be built as modules > > clk: mediatek: Allow building most MT6765 clock drivers as modules > > clk: mediatek: Allow building most MT6797 clock drivers as modules > > clk: mediatek: Split configuration options for MT8186 clock drivers > > clk: mediatek: mt8192: Move apmixedsys clock driver to its own file > > clk: mediatek: Kconfig: Allow module build for core mt8192 clocks > > clk: mediatek: Add MODULE_DEVICE_TABLE() where appropriate > > > > drivers/clk/mediatek/Kconfig | 282 +++-- > > drivers/clk/mediatek/Makefile | 53 +- > > drivers/clk/mediatek/clk-mt2701-aud.c | 49 +- > > drivers/clk/mediatek/clk-mt2701-bdp.c | 27 +- > > drivers/clk/mediatek/clk-mt2701-eth.c | 16 +- > > drivers/clk/mediatek/clk-mt2701-g3d.c | 16 +- > > drivers/clk/mediatek/clk-mt2701-hif.c | 16 +- > > drivers/clk/mediatek/clk-mt2701-img.c | 15 +- > > drivers/clk/mediatek/clk-mt2701-mm.c | 56 +- > > drivers/clk/mediatek/clk-mt2701-vdec.c | 27 +- > > drivers/clk/mediatek/clk-mt2701.c | 48 +- > > drivers/clk/mediatek/clk-mt2712-apmixedsys.c | 154 +++ > > drivers/clk/mediatek/clk-mt2712-bdp.c | 16 +- > > drivers/clk/mediatek/clk-mt2712-img.c | 15 +- > > drivers/clk/mediatek/clk-mt2712-jpgdec.c | 16 +- > > drivers/clk/mediatek/clk-mt2712-mfg.c | 15 +- > > drivers/clk/mediatek/clk-mt2712-mm.c | 66 +- > > drivers/clk/mediatek/clk-mt2712-vdec.c | 27 +- > > drivers/clk/mediatek/clk-mt2712-venc.c | 16 +- > > drivers/clk/mediatek/clk-mt2712.c | 1016 +++++------------ > > drivers/clk/mediatek/clk-mt6765-audio.c | 27 +- > > drivers/clk/mediatek/clk-mt6765-cam.c | 16 +- > > drivers/clk/mediatek/clk-mt6765-img.c | 15 +- > > drivers/clk/mediatek/clk-mt6765-mipi0a.c | 16 +- > > drivers/clk/mediatek/clk-mt6765-mm.c | 15 +- > > drivers/clk/mediatek/clk-mt6765-vcodec.c | 16 +- > > drivers/clk/mediatek/clk-mt6765.c | 90 +- > > drivers/clk/mediatek/clk-mt6779-aud.c | 1 + > > drivers/clk/mediatek/clk-mt6779-cam.c | 1 + > > drivers/clk/mediatek/clk-mt6779-img.c | 1 + > > drivers/clk/mediatek/clk-mt6779-ipe.c | 1 + > > drivers/clk/mediatek/clk-mt6779-mfg.c | 1 + > > drivers/clk/mediatek/clk-mt6779-mm.c | 25 +- > > drivers/clk/mediatek/clk-mt6779-vdec.c | 1 + > > drivers/clk/mediatek/clk-mt6779-venc.c | 1 + > > drivers/clk/mediatek/clk-mt6779.c | 1 + > > drivers/clk/mediatek/clk-mt6795-apmixedsys.c | 1 + > > drivers/clk/mediatek/clk-mt6795-infracfg.c | 1 + > > drivers/clk/mediatek/clk-mt6795-mfg.c | 1 + > > drivers/clk/mediatek/clk-mt6795-mm.c | 56 +- > > drivers/clk/mediatek/clk-mt6795-pericfg.c | 1 + > > drivers/clk/mediatek/clk-mt6795-topckgen.c | 1 + > > drivers/clk/mediatek/clk-mt6795-vdecsys.c | 1 + > > drivers/clk/mediatek/clk-mt6795-vencsys.c | 1 + > > drivers/clk/mediatek/clk-mt6797-img.c | 15 +- > > drivers/clk/mediatek/clk-mt6797-mm.c | 56 +- > > drivers/clk/mediatek/clk-mt6797-vdec.c | 27 +- > > drivers/clk/mediatek/clk-mt6797-venc.c | 16 +- > > drivers/clk/mediatek/clk-mt6797.c | 47 +- > > drivers/clk/mediatek/clk-mt7622-apmixedsys.c | 138 +++ > > drivers/clk/mediatek/clk-mt7622-aud.c | 49 +- > > drivers/clk/mediatek/clk-mt7622-eth.c | 27 +- > > drivers/clk/mediatek/clk-mt7622-hif.c | 27 +- > > drivers/clk/mediatek/clk-mt7622-infracfg.c | 129 +++ > > drivers/clk/mediatek/clk-mt7622.c | 375 +----- > > drivers/clk/mediatek/clk-mt7629-eth.c | 25 +- > > drivers/clk/mediatek/clk-mt7629-hif.c | 27 +- > > drivers/clk/mediatek/clk-mt7629.c | 46 +- > > drivers/clk/mediatek/clk-mt7981-apmixed.c | 2 + > > drivers/clk/mediatek/clk-mt7981-eth.c | 3 +- > > drivers/clk/mediatek/clk-mt7981-infracfg.c | 4 +- > > drivers/clk/mediatek/clk-mt7981-topckgen.c | 4 +- > > drivers/clk/mediatek/clk-mt7986-apmixed.c | 8 +- > > drivers/clk/mediatek/clk-mt7986-eth.c | 115 +- > > drivers/clk/mediatek/clk-mt7986-infracfg.c | 93 +- > > drivers/clk/mediatek/clk-mt7986-topckgen.c | 4 +- > > drivers/clk/mediatek/clk-mt8135.c | 31 +- > > drivers/clk/mediatek/clk-mt8167-apmixedsys.c | 145 +++ > > drivers/clk/mediatek/clk-mt8167-aud.c | 47 +- > > drivers/clk/mediatek/clk-mt8167-img.c | 50 +- > > drivers/clk/mediatek/clk-mt8167-mfgcfg.c | 50 +- > > drivers/clk/mediatek/clk-mt8167-mm.c | 69 +- > > drivers/clk/mediatek/clk-mt8167-vdec.c | 59 +- > > drivers/clk/mediatek/clk-mt8167.c | 390 ++----- > > drivers/clk/mediatek/clk-mt8173-apmixedsys.c | 1 + > > drivers/clk/mediatek/clk-mt8173-img.c | 1 + > > drivers/clk/mediatek/clk-mt8173-infracfg.c | 1 + > > drivers/clk/mediatek/clk-mt8173-mm.c | 82 +- > > drivers/clk/mediatek/clk-mt8173-pericfg.c | 1 + > > drivers/clk/mediatek/clk-mt8173-topckgen.c | 1 + > > drivers/clk/mediatek/clk-mt8173-vdecsys.c | 1 + > > drivers/clk/mediatek/clk-mt8173-vencsys.c | 1 + > > drivers/clk/mediatek/clk-mt8183-apmixedsys.c | 194 ++++ > > drivers/clk/mediatek/clk-mt8183-audio.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-cam.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-img.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-ipu0.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-ipu1.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-ipu_adl.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-ipu_conn.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-mm.c | 29 +- > > drivers/clk/mediatek/clk-mt8183-vdec.c | 5 +- > > drivers/clk/mediatek/clk-mt8183-venc.c | 5 +- > > drivers/clk/mediatek/clk-mt8183.c | 747 +++--------- > > drivers/clk/mediatek/clk-mt8186-apmixedsys.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-cam.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-img.c | 4 +- > > .../clk/mediatek/clk-mt8186-imp_iic_wrap.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-infra_ao.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-ipe.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-mcu.c | 69 +- > > drivers/clk/mediatek/clk-mt8186-mdp.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-mfg.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-mm.c | 59 +- > > drivers/clk/mediatek/clk-mt8186-topckgen.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-vdec.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-venc.c | 4 +- > > drivers/clk/mediatek/clk-mt8186-wpe.c | 4 +- > > drivers/clk/mediatek/clk-mt8192-apmixedsys.c | 215 ++++ > > drivers/clk/mediatek/clk-mt8192-aud.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-cam.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-img.c | 5 +- > > .../clk/mediatek/clk-mt8192-imp_iic_wrap.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-ipe.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-mdp.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-mfg.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-mm.c | 34 +- > > drivers/clk/mediatek/clk-mt8192-msdc.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-scp_adsp.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-vdec.c | 5 +- > > drivers/clk/mediatek/clk-mt8192-venc.c | 5 +- > > drivers/clk/mediatek/clk-mt8192.c | 223 +--- > > drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-cam.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-ccu.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-img.c | 4 +- > > .../clk/mediatek/clk-mt8195-imp_iic_wrap.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-infra_ao.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-ipe.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-mfg.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-peri_ao.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-scp_adsp.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-topckgen.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-vdec.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-vdo0.c | 59 +- > > drivers/clk/mediatek/clk-mt8195-vdo1.c | 61 +- > > drivers/clk/mediatek/clk-mt8195-venc.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-vpp0.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-vpp1.c | 4 +- > > drivers/clk/mediatek/clk-mt8195-wpe.c | 4 +- > > drivers/clk/mediatek/clk-mt8365-apmixedsys.c | 166 +++ > > drivers/clk/mediatek/clk-mt8365-apu.c | 3 +- > > drivers/clk/mediatek/clk-mt8365-cam.c | 3 +- > > drivers/clk/mediatek/clk-mt8365-mfg.c | 3 +- > > drivers/clk/mediatek/clk-mt8365-mm.c | 42 +- > > drivers/clk/mediatek/clk-mt8365-vdec.c | 3 +- > > drivers/clk/mediatek/clk-mt8365-venc.c | 3 +- > > drivers/clk/mediatek/clk-mt8365.c | 605 ++-------- > > drivers/clk/mediatek/clk-mt8516-apmixedsys.c | 122 ++ > > drivers/clk/mediatek/clk-mt8516-aud.c | 47 +- > > drivers/clk/mediatek/clk-mt8516.c | 246 +--- > > drivers/clk/mediatek/clk-mtk.c | 82 +- > > drivers/clk/mediatek/clk-mtk.h | 7 +- > > 155 files changed, 3292 insertions(+), 4355 deletions(-) > > create mode 100644 drivers/clk/mediatek/clk-mt2712-apmixedsys.c > > create mode 100644 drivers/clk/mediatek/clk-mt7622-apmixedsys.c > > create mode 100644 drivers/clk/mediatek/clk-mt7622-infracfg.c > > create mode 100644 drivers/clk/mediatek/clk-mt8167-apmixedsys.c > > create mode 100644 drivers/clk/mediatek/clk-mt8183-apmixedsys.c > > create mode 100644 drivers/clk/mediatek/clk-mt8192-apmixedsys.c > > create mode 100644 drivers/clk/mediatek/clk-mt8365-apmixedsys.c > > create mode 100644 drivers/clk/mediatek/clk-mt8516-apmixedsys.c > >
Il 07/02/23 10:04, Chen-Yu Tsai ha scritto: > On Mon, Feb 6, 2023 at 11:38 PM AngeloGioacchino Del Regno > <angelogioacchino.delregno@collabora.com> wrote: >> >> Il 06/02/23 16:28, AngeloGioacchino Del Regno ha scritto: >>> This is part 2 of the "MediaTek clocks cleanups and improvements" series, >>> which was already picked. >>> >>> If reading this full cover letter is too boring for you, here's a short >>> summary of the changes of this series: >>> - Added mtk_clk_pdev_probe() for mtk-mmsys probed clocks; >>> - Added divider clock support to common probe mechanism; >>> - Various cleanups here and there; >>> - Converted most clock drivers to platform_driver; >>> - MediaTek clocks can now be built as modules. >>> >>> NOTE: Applies on top of [1]. >>> >>> > > Something broke on MT8183 Juniper, though I'm not sure what. It ended up > crashing in mtk-cpufreq in a badly written error path. Once that was fixed > it was endlessly looping through deferred probe. Seems like mtk-cpufreq > was not able to get all its resources. > I would be silly to expect everything to go alright in v1, wouldn't I? :-) I'll recheck and try to understand what went wrong here. Thanks! > ChenYu > >> ...and of course I forgot to paste the link. >> >> [1]: https://patchwork.kernel.org/project/linux-mediatek/list/?series=719067 >> >> Cheers, >> Angelo >> >> >>> Full blurb: >>> >>> This huge series adds more cleanups on top, reducing size and adding more >>> commonization for clock drivers probe/remove, which also includes a new >>> common probe mechanism for multimedia clock drivers that are usually >>> probed by mtk-mmsys instead of a dt clock node: thanks to this, it was >>> finally possible to convert almost all clock drivers to the common probe >>> mechanism, which *finally again* makes us able to build all these drivers >>> as modules! >>> >>> Since this looked like being *the* way forward, I went on converting some >>> more drivers away from OF_CLK_DECLARE_DRIVER to full platform_driver(s), >>> allowing for more (actually, almost all!) drivers to be built as modules. >>> >>> While at it, I also added some more consistency in macros usage by >>> removing all of the duplicated full macro declaration for MediaTek gate >>> clocks and replacing all of those with using the GATE_MTK macro instead, >>> producing a nice reduction in amount of lines per file but, more >>> importantly, improving readability and eventual future batch changes. >>> >>> This amount of commonization will also, in my opinion, greatly improve >>> the review process for new clock drivers, as they will be mostly just a >>> list of clocks and won't contain much new code, as it's all going to be >>> handled in the common places, which also reduces chances to see new clock >>> driver related bugs emerging on one SoC or the other. >>> >>> Since I don't own devices with all of the supported MediaTek SoCs, I >>> could not test some of the conversions on real hardware... but I am >>> confident that this will work as the drivers are *very* similar on a >>> per-generation basis. >>> >>> This series was build-tested for all (both module and built-in build) >>> and was manually tested on MT6795, MT8173, MT8192, MT8195. >>> >>> AngeloGioacchino Del Regno (45): >>> clk: mediatek: clk-mtk: Switch to device_get_match_data() >>> clk: mediatek: clk-mtk: Introduce clk_mtk_pdev_{probe,remove}() >>> clk: mediatek: Migrate to mtk_clk_pdev_probe() for multimedia clocks >>> clk: mediatek: Add divider clocks to mtk_clk_simple_{probe,remove}() >>> clk: mediatek: mt2712: Migrate topckgen/mcucfg to >>> mtk_clk_simple_probe() >>> clk: mediatek: mt2712: Compress clock arrays entries to 90 columns >>> clk: mediatek: mt2712: Add error handling to >>> clk_mt2712_apmixed_probe() >>> clk: mediatek: mt2712: Move apmixedsys clock driver to its own file >>> clk: mediatek: mt2712: Change to use module_platform_driver macro >>> clk: mediatek: mt2712: Change Kconfig options to allow module build >>> clk: mediatek: mt8365: Move apmixedsys clock driver to its own file >>> clk: mediatek: mt8365: Convert to mtk_clk_simple_{probe,remove}() >>> clk: mediatek: mt8167: Compress GATE_TOPx macros >>> clk: mediatek: mt8167: Move apmixedsys as platform_driver in new file >>> clk: mediatek: mt8167: Remove __initconst annotation from arrays >>> clk: mediatek: mt8167: Convert to mtk_clk_simple_{probe,remove}() >>> clk: mediatek: mt8183: Move apmixedsys clock driver to its own file >>> clk: mediatek: mt8183: Compress clocks arrays entries where possible >>> clk: mediatek: mt8183: Convert all remaining clocks to common probe >>> clk: mediatek: Consistently use GATE_MTK() macro >>> clk: mediatek: mt7622: Properly use CLK_IS_CRITICAL flag >>> clk: mediatek: mt7622: Move apmixedsys clock driver to its own file >>> clk: mediatek: mt7622: Move infracfg to clk-mt7622-infracfg.c >>> clk: mediatek: mt7622: Convert to platform driver and simple probe >>> clk: mediatek: mt8516: Move apmixedsys clock driver to its own file >>> clk: mediatek: mt8516: Convert to platform driver and simple probe >>> clk: mediatek: mt8516: Allow building clock drivers as modules >>> clk: mediatek: Propagate struct device with >>> mtk_clk_register_dividers() >>> clk: mediatek: mt7986-apmixed: Use PLL_AO flag to set critical clock >>> clk: mediatek: mt7986-infracfg: Migrate to common probe mechanism >>> clk: mediatek: mt7986-eth: Migrate to common probe mechanism >>> clk: mediatek: mt8186-mcu: Migrate to common probe mechanism >>> clk: mediatek: Switch to module_platform_driver() where possible >>> clk: mediatek: Add MODULE_LICENSE() where missing >>> clk: mediatek: Split MT8195 clock drivers and allow module build >>> clk: mediatek: Allow building MT8192 non-critical clocks as modules >>> clk: mediatek: Allow MT7622 clocks to be built as modules >>> clk: mediatek: Allow all MT8167 clocks to be built as modules >>> clk: mediatek: Allow all MT8183 clocks to be built as modules >>> clk: mediatek: Allow building most MT6765 clock drivers as modules >>> clk: mediatek: Allow building most MT6797 clock drivers as modules >>> clk: mediatek: Split configuration options for MT8186 clock drivers >>> clk: mediatek: mt8192: Move apmixedsys clock driver to its own file >>> clk: mediatek: Kconfig: Allow module build for core mt8192 clocks >>> clk: mediatek: Add MODULE_DEVICE_TABLE() where appropriate >>> >>> drivers/clk/mediatek/Kconfig | 282 +++-- >>> drivers/clk/mediatek/Makefile | 53 +- >>> drivers/clk/mediatek/clk-mt2701-aud.c | 49 +- >>> drivers/clk/mediatek/clk-mt2701-bdp.c | 27 +- >>> drivers/clk/mediatek/clk-mt2701-eth.c | 16 +- >>> drivers/clk/mediatek/clk-mt2701-g3d.c | 16 +- >>> drivers/clk/mediatek/clk-mt2701-hif.c | 16 +- >>> drivers/clk/mediatek/clk-mt2701-img.c | 15 +- >>> drivers/clk/mediatek/clk-mt2701-mm.c | 56 +- >>> drivers/clk/mediatek/clk-mt2701-vdec.c | 27 +- >>> drivers/clk/mediatek/clk-mt2701.c | 48 +- >>> drivers/clk/mediatek/clk-mt2712-apmixedsys.c | 154 +++ >>> drivers/clk/mediatek/clk-mt2712-bdp.c | 16 +- >>> drivers/clk/mediatek/clk-mt2712-img.c | 15 +- >>> drivers/clk/mediatek/clk-mt2712-jpgdec.c | 16 +- >>> drivers/clk/mediatek/clk-mt2712-mfg.c | 15 +- >>> drivers/clk/mediatek/clk-mt2712-mm.c | 66 +- >>> drivers/clk/mediatek/clk-mt2712-vdec.c | 27 +- >>> drivers/clk/mediatek/clk-mt2712-venc.c | 16 +- >>> drivers/clk/mediatek/clk-mt2712.c | 1016 +++++------------ >>> drivers/clk/mediatek/clk-mt6765-audio.c | 27 +- >>> drivers/clk/mediatek/clk-mt6765-cam.c | 16 +- >>> drivers/clk/mediatek/clk-mt6765-img.c | 15 +- >>> drivers/clk/mediatek/clk-mt6765-mipi0a.c | 16 +- >>> drivers/clk/mediatek/clk-mt6765-mm.c | 15 +- >>> drivers/clk/mediatek/clk-mt6765-vcodec.c | 16 +- >>> drivers/clk/mediatek/clk-mt6765.c | 90 +- >>> drivers/clk/mediatek/clk-mt6779-aud.c | 1 + >>> drivers/clk/mediatek/clk-mt6779-cam.c | 1 + >>> drivers/clk/mediatek/clk-mt6779-img.c | 1 + >>> drivers/clk/mediatek/clk-mt6779-ipe.c | 1 + >>> drivers/clk/mediatek/clk-mt6779-mfg.c | 1 + >>> drivers/clk/mediatek/clk-mt6779-mm.c | 25 +- >>> drivers/clk/mediatek/clk-mt6779-vdec.c | 1 + >>> drivers/clk/mediatek/clk-mt6779-venc.c | 1 + >>> drivers/clk/mediatek/clk-mt6779.c | 1 + >>> drivers/clk/mediatek/clk-mt6795-apmixedsys.c | 1 + >>> drivers/clk/mediatek/clk-mt6795-infracfg.c | 1 + >>> drivers/clk/mediatek/clk-mt6795-mfg.c | 1 + >>> drivers/clk/mediatek/clk-mt6795-mm.c | 56 +- >>> drivers/clk/mediatek/clk-mt6795-pericfg.c | 1 + >>> drivers/clk/mediatek/clk-mt6795-topckgen.c | 1 + >>> drivers/clk/mediatek/clk-mt6795-vdecsys.c | 1 + >>> drivers/clk/mediatek/clk-mt6795-vencsys.c | 1 + >>> drivers/clk/mediatek/clk-mt6797-img.c | 15 +- >>> drivers/clk/mediatek/clk-mt6797-mm.c | 56 +- >>> drivers/clk/mediatek/clk-mt6797-vdec.c | 27 +- >>> drivers/clk/mediatek/clk-mt6797-venc.c | 16 +- >>> drivers/clk/mediatek/clk-mt6797.c | 47 +- >>> drivers/clk/mediatek/clk-mt7622-apmixedsys.c | 138 +++ >>> drivers/clk/mediatek/clk-mt7622-aud.c | 49 +- >>> drivers/clk/mediatek/clk-mt7622-eth.c | 27 +- >>> drivers/clk/mediatek/clk-mt7622-hif.c | 27 +- >>> drivers/clk/mediatek/clk-mt7622-infracfg.c | 129 +++ >>> drivers/clk/mediatek/clk-mt7622.c | 375 +----- >>> drivers/clk/mediatek/clk-mt7629-eth.c | 25 +- >>> drivers/clk/mediatek/clk-mt7629-hif.c | 27 +- >>> drivers/clk/mediatek/clk-mt7629.c | 46 +- >>> drivers/clk/mediatek/clk-mt7981-apmixed.c | 2 + >>> drivers/clk/mediatek/clk-mt7981-eth.c | 3 +- >>> drivers/clk/mediatek/clk-mt7981-infracfg.c | 4 +- >>> drivers/clk/mediatek/clk-mt7981-topckgen.c | 4 +- >>> drivers/clk/mediatek/clk-mt7986-apmixed.c | 8 +- >>> drivers/clk/mediatek/clk-mt7986-eth.c | 115 +- >>> drivers/clk/mediatek/clk-mt7986-infracfg.c | 93 +- >>> drivers/clk/mediatek/clk-mt7986-topckgen.c | 4 +- >>> drivers/clk/mediatek/clk-mt8135.c | 31 +- >>> drivers/clk/mediatek/clk-mt8167-apmixedsys.c | 145 +++ >>> drivers/clk/mediatek/clk-mt8167-aud.c | 47 +- >>> drivers/clk/mediatek/clk-mt8167-img.c | 50 +- >>> drivers/clk/mediatek/clk-mt8167-mfgcfg.c | 50 +- >>> drivers/clk/mediatek/clk-mt8167-mm.c | 69 +- >>> drivers/clk/mediatek/clk-mt8167-vdec.c | 59 +- >>> drivers/clk/mediatek/clk-mt8167.c | 390 ++----- >>> drivers/clk/mediatek/clk-mt8173-apmixedsys.c | 1 + >>> drivers/clk/mediatek/clk-mt8173-img.c | 1 + >>> drivers/clk/mediatek/clk-mt8173-infracfg.c | 1 + >>> drivers/clk/mediatek/clk-mt8173-mm.c | 82 +- >>> drivers/clk/mediatek/clk-mt8173-pericfg.c | 1 + >>> drivers/clk/mediatek/clk-mt8173-topckgen.c | 1 + >>> drivers/clk/mediatek/clk-mt8173-vdecsys.c | 1 + >>> drivers/clk/mediatek/clk-mt8173-vencsys.c | 1 + >>> drivers/clk/mediatek/clk-mt8183-apmixedsys.c | 194 ++++ >>> drivers/clk/mediatek/clk-mt8183-audio.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-cam.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-img.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-ipu0.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-ipu1.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-ipu_adl.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-ipu_conn.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-mm.c | 29 +- >>> drivers/clk/mediatek/clk-mt8183-vdec.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183-venc.c | 5 +- >>> drivers/clk/mediatek/clk-mt8183.c | 747 +++--------- >>> drivers/clk/mediatek/clk-mt8186-apmixedsys.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-cam.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-img.c | 4 +- >>> .../clk/mediatek/clk-mt8186-imp_iic_wrap.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-infra_ao.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-ipe.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-mcu.c | 69 +- >>> drivers/clk/mediatek/clk-mt8186-mdp.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-mfg.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-mm.c | 59 +- >>> drivers/clk/mediatek/clk-mt8186-topckgen.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-vdec.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-venc.c | 4 +- >>> drivers/clk/mediatek/clk-mt8186-wpe.c | 4 +- >>> drivers/clk/mediatek/clk-mt8192-apmixedsys.c | 215 ++++ >>> drivers/clk/mediatek/clk-mt8192-aud.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-cam.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-img.c | 5 +- >>> .../clk/mediatek/clk-mt8192-imp_iic_wrap.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-ipe.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-mdp.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-mfg.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-mm.c | 34 +- >>> drivers/clk/mediatek/clk-mt8192-msdc.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-scp_adsp.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-vdec.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192-venc.c | 5 +- >>> drivers/clk/mediatek/clk-mt8192.c | 223 +--- >>> drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-apusys_pll.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-cam.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-ccu.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-img.c | 4 +- >>> .../clk/mediatek/clk-mt8195-imp_iic_wrap.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-infra_ao.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-ipe.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-mfg.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-peri_ao.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-scp_adsp.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-topckgen.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-vdec.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-vdo0.c | 59 +- >>> drivers/clk/mediatek/clk-mt8195-vdo1.c | 61 +- >>> drivers/clk/mediatek/clk-mt8195-venc.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-vpp0.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-vpp1.c | 4 +- >>> drivers/clk/mediatek/clk-mt8195-wpe.c | 4 +- >>> drivers/clk/mediatek/clk-mt8365-apmixedsys.c | 166 +++ >>> drivers/clk/mediatek/clk-mt8365-apu.c | 3 +- >>> drivers/clk/mediatek/clk-mt8365-cam.c | 3 +- >>> drivers/clk/mediatek/clk-mt8365-mfg.c | 3 +- >>> drivers/clk/mediatek/clk-mt8365-mm.c | 42 +- >>> drivers/clk/mediatek/clk-mt8365-vdec.c | 3 +- >>> drivers/clk/mediatek/clk-mt8365-venc.c | 3 +- >>> drivers/clk/mediatek/clk-mt8365.c | 605 ++-------- >>> drivers/clk/mediatek/clk-mt8516-apmixedsys.c | 122 ++ >>> drivers/clk/mediatek/clk-mt8516-aud.c | 47 +- >>> drivers/clk/mediatek/clk-mt8516.c | 246 +--- >>> drivers/clk/mediatek/clk-mtk.c | 82 +- >>> drivers/clk/mediatek/clk-mtk.h | 7 +- >>> 155 files changed, 3292 insertions(+), 4355 deletions(-) >>> create mode 100644 drivers/clk/mediatek/clk-mt2712-apmixedsys.c >>> create mode 100644 drivers/clk/mediatek/clk-mt7622-apmixedsys.c >>> create mode 100644 drivers/clk/mediatek/clk-mt7622-infracfg.c >>> create mode 100644 drivers/clk/mediatek/clk-mt8167-apmixedsys.c >>> create mode 100644 drivers/clk/mediatek/clk-mt8183-apmixedsys.c >>> create mode 100644 drivers/clk/mediatek/clk-mt8192-apmixedsys.c >>> create mode 100644 drivers/clk/mediatek/clk-mt8365-apmixedsys.c >>> create mode 100644 drivers/clk/mediatek/clk-mt8516-apmixedsys.c >>>
On Tue, Feb 7, 2023 at 5:19 PM AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> wrote: > > Il 07/02/23 10:04, Chen-Yu Tsai ha scritto: > > On Mon, Feb 6, 2023 at 11:38 PM AngeloGioacchino Del Regno > > <angelogioacchino.delregno@collabora.com> wrote: > >> > >> Il 06/02/23 16:28, AngeloGioacchino Del Regno ha scritto: > >>> This is part 2 of the "MediaTek clocks cleanups and improvements" series, > >>> which was already picked. > >>> > >>> If reading this full cover letter is too boring for you, here's a short > >>> summary of the changes of this series: > >>> - Added mtk_clk_pdev_probe() for mtk-mmsys probed clocks; > >>> - Added divider clock support to common probe mechanism; > >>> - Various cleanups here and there; > >>> - Converted most clock drivers to platform_driver; > >>> - MediaTek clocks can now be built as modules. > >>> > >>> NOTE: Applies on top of [1]. > >>> > >>> > > > > Something broke on MT8183 Juniper, though I'm not sure what. It ended up > > crashing in mtk-cpufreq in a badly written error path. Once that was fixed > > it was endlessly looping through deferred probe. Seems like mtk-cpufreq > > was not able to get all its resources. > > > > I would be silly to expect everything to go alright in v1, wouldn't I? :-) > I'll recheck and try to understand what went wrong here. "clk: mediatek: mt8183: Convert all remaining clocks to common probe" is the first patch that breaks things. ChenYu