From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Chen-Yu Tsai <wenst@chromium.org>
Cc: mturquette@baylibre.com, sboyd@kernel.org,
matthias.bgg@gmail.com, johnson.wang@mediatek.com,
miles.chen@mediatek.com, chun-jie.chen@mediatek.com,
daniel@makrotopia.org, fparent@baylibre.com, msp@baylibre.com,
nfraprado@collabora.com, rex-bc.chen@mediatek.com,
zhaojh329@gmail.com, sam.shih@mediatek.com,
edward-jw.yang@mediatek.com, yangyingliang@huawei.com,
granquet@baylibre.com, pablo.sun@mediatek.com,
sean.wang@mediatek.com, chen.zhong@mediatek.com,
linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH v1 09/45] clk: mediatek: mt2712: Change to use module_platform_driver macro
Date: Tue, 7 Feb 2023 11:50:27 +0100 [thread overview]
Message-ID: <d07156bd-95e6-5c7d-b88e-1c4a5dfc3a07@collabora.com> (raw)
In-Reply-To: <CAGXv+5HNs-74COE_5V4O_ykLJN=K4YVR-5SNwcPTBcxFMoRm5g@mail.gmail.com>
Il 07/02/23 10:30, Chen-Yu Tsai ha scritto:
> On Tue, Feb 7, 2023 at 5:00 PM AngeloGioacchino Del Regno
> <angelogioacchino.delregno@collabora.com> wrote:
>>
>> Il 07/02/23 07:33, Chen-Yu Tsai ha scritto:
>>> On Mon, Feb 6, 2023 at 11:29 PM AngeloGioacchino Del Regno
>>> <angelogioacchino.delregno@collabora.com> wrote:
>>>>
>>>> Now that all of the clocks in clk-mt2712.c are using the common
>>>> mtk_clk_simple_{probe,remove}() callbacks we can safely migrate
>>>> to module_platform_driver.
>>>
>>> Instead of splitting the conversion into a module among many patches,
>>> I'd do it in one go. With one patch we get a working module instead
>>> of a half-baked one half way through the series.
>>>
>>
>> If you really want I can eventually do that in one go - in any case, the
>> sense of having this split in multiple commits is:
>> - Bisectability: topckgen/mcucfg migration being faulty would point at
>> one commit doing just that, making it easier for whoever
>> is trying to debug that to find what could've gone wrong;
>
> This part I agree with.
>
>> - Slow changes: A driver being a platform_driver doesn't mean that it *has*
>> to be compiled as a module: infact, we can use the .remove()
>> callback even with built-in drivers (as you can remove one
>> and re-add it during runtime from sysfs)
>
> I think the part that tripped me up was that in this patch's case it
> was already a platform driver, just a builtin one (without the
> builtin_platform_driver sugar).
>
>> - Signaling completion:
>> Saying "this is complete" in this case is performed in the
>> last patches of the series, where only the Kconfig is being
>> changed to allow the module build for (most)all.
>
> I'm concerned about people randomly cherry-picking patches. Unfortunately
> not everyone lives on mainline, us included. (I'm sure Android has it
> worse.) Many won't see the complete patch series, doubly so if we merge
> it in stages. Better we give one complete patch that converts the
> boilerplate code from "can't work as module" to "can work as module".
> I do agree we should keep all the other cleanups and migration to
> simple/pdev_probe separate for bisectability.
>
One complete patch meaning that migrating to mtk_clk_simple_probe() should be
squashed with moving apmixedsys away?
So one patch doing the *big* change, and then one changing the driver to use
the module_platform_driver() macro and tristate in Kconfig?
I would be more comfortable changing the order of commits at this point,
apmixedsys error handling Fixes -> apmixedsys moved in its own file ->
migrate others to mtk_clk_simple_probe() *and* Kconfig changes
What do you think?
Thing is, apmixedsys is not a simple_probe driver and will never be, so
it feels wrong to move that inside of a commit that converts to simple_probe()...
>>> The subject could say "Convert X driver from builtin to module". And
>>> instead of "migrate to module_platform_driver", the body could say
>>> "convert to module by switching to module_platform_driver, and adding
>>> missing MODULE_* statements". I believe this constitutes one logical
>>> change. Maybe the accompanying Kconfig change should be included as
>>> well?
>>>
>>
>> But again, I don't have *really strong* opinions on this, if not preferences
>> for how I'd like to see the changes getting in: this series brings big changes
>> that would be done in many more commits if they were scattered in more series.
>> Another point about having this conversion performed in multiple commits is
>> showing how it was done and how to replicate it for a different driver...
>
> In the past I've seen some comments from other maintainers about keeping
> (module|builtin)_X_driver consistent with its Kconfig entry. That sort of
> plays into my argument that this bit should be kept atomic.
>
> There are a couple patches where you convert directly from CLK_OF_DECLARE
> to module_platform_driver. We could work those out case by case?
>
>>>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>>>> ---
>>>> drivers/clk/mediatek/clk-mt2712.c | 10 ++--------
>>>> 1 file changed, 2 insertions(+), 8 deletions(-)
>>>>
>>>> diff --git a/drivers/clk/mediatek/clk-mt2712.c b/drivers/clk/mediatek/clk-mt2712.c
>>>> index c5fd76d1b9df..65c1cbcbd54e 100644
>>>> --- a/drivers/clk/mediatek/clk-mt2712.c
>>>> +++ b/drivers/clk/mediatek/clk-mt2712.c
>>>> @@ -1028,7 +1028,7 @@ static const struct of_device_id of_match_clk_mt2712_simple[] = {
>>>> { /* sentinel */ }
>>>> };
>>>>
>>>> -static struct platform_driver clk_mt2712_simple_drv = {
>>>> +static struct platform_driver clk_mt2712_drv = {
>>>
>>> Why the name change? If you do change the name, could you also change
>>> the of match table's name as well to be consistent, and also mention
>>> the change in the commit log?
>>
>> It simply looked like being a good idea, as "simple" made sense when we had two
>> platform_driver in one file, one using simple_probe, one using a custom probe
>> function.
>> The latter going away forever means that there's no more distinction to do
>> between the two, hence my rename here...
>>
>> Regarding the of_match_table name change... I'm sorry, I genuinely forgot to
>> change it, my intention was infact to actually be consistent... :-)
>>
>>>
>>> I'd just leave it alone though.
>>
>> I had to explain my reasoning about all of the above, so I'll just wait for
>> your opinion again before going for a v2! :-)
>
> Thanks again for working on this.
>
> ChenYu
next prev parent reply other threads:[~2023-02-07 10:51 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-06 15:28 [PATCH v1 00/45] MediaTek clocks: full module build and cleanups AngeloGioacchino Del Regno
2023-02-06 15:28 ` [PATCH v1 01/45] clk: mediatek: clk-mtk: Switch to device_get_match_data() AngeloGioacchino Del Regno
2023-02-07 5:01 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 02/45] clk: mediatek: clk-mtk: Introduce clk_mtk_pdev_{probe,remove}() AngeloGioacchino Del Regno
2023-02-07 5:59 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 03/45] clk: mediatek: Migrate to mtk_clk_pdev_probe() for multimedia clocks AngeloGioacchino Del Regno
2023-02-07 6:06 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 04/45] clk: mediatek: Add divider clocks to mtk_clk_simple_{probe,remove}() AngeloGioacchino Del Regno
2023-02-07 6:11 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 05/45] clk: mediatek: mt2712: Migrate topckgen/mcucfg to mtk_clk_simple_probe() AngeloGioacchino Del Regno
2023-02-07 6:15 ` Chen-Yu Tsai
2023-02-07 8:45 ` AngeloGioacchino Del Regno
2023-02-07 8:58 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 06/45] clk: mediatek: mt2712: Compress clock arrays entries to 90 columns AngeloGioacchino Del Regno
2023-02-07 6:58 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 07/45] clk: mediatek: mt2712: Add error handling to clk_mt2712_apmixed_probe() AngeloGioacchino Del Regno
2023-02-07 6:16 ` Chen-Yu Tsai
2023-02-07 9:00 ` AngeloGioacchino Del Regno
2023-02-06 15:28 ` [PATCH v1 08/45] clk: mediatek: mt2712: Move apmixedsys clock driver to its own file AngeloGioacchino Del Regno
2023-02-07 6:50 ` Chen-Yu Tsai
2023-02-07 9:13 ` AngeloGioacchino Del Regno
2023-02-07 7:07 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 09/45] clk: mediatek: mt2712: Change to use module_platform_driver macro AngeloGioacchino Del Regno
2023-02-07 6:33 ` Chen-Yu Tsai
2023-02-07 9:00 ` AngeloGioacchino Del Regno
2023-02-07 9:30 ` Chen-Yu Tsai
2023-02-07 10:50 ` AngeloGioacchino Del Regno [this message]
2023-02-08 8:24 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 10/45] clk: mediatek: mt2712: Change Kconfig options to allow module build AngeloGioacchino Del Regno
2023-02-06 15:28 ` [PATCH v1 11/45] clk: mediatek: mt8365: Move apmixedsys clock driver to its own file AngeloGioacchino Del Regno
2023-02-07 7:12 ` Chen-Yu Tsai
2023-02-07 9:14 ` AngeloGioacchino Del Regno
2023-02-07 9:32 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 12/45] clk: mediatek: mt8365: Convert to mtk_clk_simple_{probe,remove}() AngeloGioacchino Del Regno
2023-02-07 7:28 ` Chen-Yu Tsai
2023-02-07 9:16 ` AngeloGioacchino Del Regno
2023-02-06 15:28 ` [PATCH v1 13/45] clk: mediatek: mt8167: Compress GATE_TOPx macros AngeloGioacchino Del Regno
2023-02-07 7:30 ` Chen-Yu Tsai
2023-02-07 9:17 ` AngeloGioacchino Del Regno
2023-02-06 15:28 ` [PATCH v1 14/45] clk: mediatek: mt8167: Move apmixedsys as platform_driver in new file AngeloGioacchino Del Regno
2023-02-07 7:36 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 15/45] clk: mediatek: mt8167: Remove __initconst annotation from arrays AngeloGioacchino Del Regno
2023-02-07 7:41 ` Chen-Yu Tsai
2023-02-06 15:28 ` [PATCH v1 16/45] clk: mediatek: mt8167: Convert to mtk_clk_simple_{probe,remove}() AngeloGioacchino Del Regno
2023-02-07 8:07 ` Chen-Yu Tsai
2023-02-07 11:51 ` AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 17/45] clk: mediatek: mt8183: Move apmixedsys clock driver to its own file AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 18/45] clk: mediatek: mt8183: Compress clocks arrays entries where possible AngeloGioacchino Del Regno
2023-02-07 9:41 ` Chen-Yu Tsai
2023-02-06 15:29 ` [PATCH v1 19/45] clk: mediatek: mt8183: Convert all remaining clocks to common probe AngeloGioacchino Del Regno
2023-02-07 9:58 ` Chen-Yu Tsai
2023-02-07 12:14 ` AngeloGioacchino Del Regno
2023-02-08 8:17 ` Chen-Yu Tsai
2023-02-06 15:29 ` [PATCH v1 20/45] clk: mediatek: Consistently use GATE_MTK() macro AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 21/45] clk: mediatek: mt7622: Properly use CLK_IS_CRITICAL flag AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 22/45] clk: mediatek: mt7622: Move apmixedsys clock driver to its own file AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 23/45] clk: mediatek: mt7622: Move infracfg to clk-mt7622-infracfg.c AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 24/45] clk: mediatek: mt7622: Convert to platform driver and simple probe AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 25/45] clk: mediatek: mt8516: Move apmixedsys clock driver to its own file AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 26/45] clk: mediatek: mt8516: Convert to platform driver and simple probe AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 27/45] clk: mediatek: mt8516: Allow building clock drivers as modules AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 28/45] clk: mediatek: Propagate struct device with mtk_clk_register_dividers() AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 29/45] clk: mediatek: mt7986-apmixed: Use PLL_AO flag to set critical clock AngeloGioacchino Del Regno
2023-02-07 14:43 ` Daniel Golle
2023-02-07 15:22 ` AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 30/45] clk: mediatek: mt7986-infracfg: Migrate to common probe mechanism AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 31/45] clk: mediatek: mt7986-eth: " AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 32/45] clk: mediatek: mt8186-mcu: " AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 33/45] clk: mediatek: Switch to module_platform_driver() where possible AngeloGioacchino Del Regno
2023-02-07 6:37 ` Chen-Yu Tsai
2023-02-07 9:03 ` AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 34/45] clk: mediatek: Add MODULE_LICENSE() where missing AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 35/45] clk: mediatek: Split MT8195 clock drivers and allow module build AngeloGioacchino Del Regno
2023-02-08 8:28 ` Chen-Yu Tsai
2023-02-08 8:59 ` AngeloGioacchino Del Regno
2023-02-09 3:46 ` Chen-Yu Tsai
2023-02-09 9:14 ` AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 36/45] clk: mediatek: Allow building MT8192 non-critical clocks as modules AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 37/45] clk: mediatek: Allow MT7622 clocks to be built " AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 38/45] clk: mediatek: Allow all MT8167 " AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 39/45] clk: mediatek: Allow all MT8183 " AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 40/45] clk: mediatek: Allow building most MT6765 clock drivers " AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 41/45] clk: mediatek: Allow building most MT6797 " AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 42/45] clk: mediatek: Split configuration options for MT8186 clock drivers AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 43/45] clk: mediatek: mt8192: Move apmixedsys clock driver to its own file AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 44/45] clk: mediatek: Kconfig: Allow module build for core mt8192 clocks AngeloGioacchino Del Regno
2023-02-06 15:29 ` [PATCH v1 45/45] clk: mediatek: Add MODULE_DEVICE_TABLE() where appropriate AngeloGioacchino Del Regno
2023-02-06 15:38 ` [PATCH v1 00/45] MediaTek clocks: full module build and cleanups AngeloGioacchino Del Regno
2023-02-07 9:04 ` Chen-Yu Tsai
2023-02-07 9:19 ` AngeloGioacchino Del Regno
2023-02-07 9:49 ` Chen-Yu Tsai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d07156bd-95e6-5c7d-b88e-1c4a5dfc3a07@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=chen.zhong@mediatek.com \
--cc=chun-jie.chen@mediatek.com \
--cc=daniel@makrotopia.org \
--cc=edward-jw.yang@mediatek.com \
--cc=fparent@baylibre.com \
--cc=granquet@baylibre.com \
--cc=johnson.wang@mediatek.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=miles.chen@mediatek.com \
--cc=msp@baylibre.com \
--cc=mturquette@baylibre.com \
--cc=nfraprado@collabora.com \
--cc=pablo.sun@mediatek.com \
--cc=rex-bc.chen@mediatek.com \
--cc=sam.shih@mediatek.com \
--cc=sboyd@kernel.org \
--cc=sean.wang@mediatek.com \
--cc=wenst@chromium.org \
--cc=yangyingliang@huawei.com \
--cc=zhaojh329@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox