[PATCH v2 37/47] clk: mediatek: Split MT8195 clock drivers and allow module build

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Fri Feb 17 04:56:52 PST 2023


Il 17/02/23 08:37, Chen-Yu Tsai ha scritto:
> On Tue, Feb 14, 2023 at 9:42 PM AngeloGioacchino Del Regno
> <angelogioacchino.delregno at collabora.com> wrote:
>>
>> MT8195 clock drivers were encapsulated in one single (and big) Kconfig
>> option: there's no reason to do that, as it is totally unnecessary to
>> build in all or none of them.
>>
>> Split them out: keep boot-critical clocks as bool and allow choosing
>> non critical clocks as tristate.
>>
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno at collabora.com>
>> ---
>>   drivers/clk/mediatek/Kconfig  | 86 +++++++++++++++++++++++++++++++++++
>>   drivers/clk/mediatek/Makefile | 20 +++++---
>>   2 files changed, 99 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
>> index 45b7aea7648d..88937d111e98 100644
>> --- a/drivers/clk/mediatek/Kconfig
>> +++ b/drivers/clk/mediatek/Kconfig
>> @@ -692,6 +692,92 @@ config COMMON_CLK_MT8195
>>           help
>>             This driver supports MediaTek MT8195 clocks.
>>
>> +config COMMON_CLK_MT8195_APUSYS
>> +       tristate "Clock driver for MediaTek MT8195 apusys"
>> +       depends on COMMON_CLK_MT8195
>> +       help
>> +         This driver supports MediaTek MT8195 AI Processor Unit System clocks.
>> +
>> +config COMMON_CLK_MT8195_AUDSYS
>> +       tristate "Clock driver for MediaTek MT8195 audsys"
>> +       depends on COMMON_CLK_MT8195
>> +       help
>> +         This driver supports MediaTek MT8195 audsys clocks.
>> +
>> +config COMMON_CLK_MT8195_CAMSYS
>> +       tristate "Clock driver for MediaTek MT8195 camsys"
>> +       depends on COMMON_CLK_MT8195_VPPSYS
> 
> One other thing. If a Kconfig option immediately follows its dependency,
> then it gets indented nicely in menuconfig, but only if.
> If other options are interspersed, then the indentation gets reset.
> 
> So could you reorder the options to follow the dependency graph?
> 

Sure, I will!

> Also how you chose the dependencies should be mentioned in the commit log.
> These are pure run time dependencies, not compile time nor link/load ones.
> 

Right.

> Last, I think an argument could be made against the proliferation of
> Kconfig options, as it dramatically increases the combinations of
> allrandconfigs. Maybe Arnd (who IIRC frequently runs allrandconfig)
> could chime in on whether this is actually a concern or not.
> 

I understand, but I don't see any way around that.
In my opinion, we shall give flexibility, and this is the only way to achieve
that: if you don't use IMGSYS, CAMSYS, WPESYS and IPESYS you should *not* be
forced to add that to the mix, as this would result in a footprint increase
for no *final* practical reason.

It's true, today we have big storage capacities and fast machines, but we can
still see a reduction in boot times (bootloader kernel load time, other than
actual kernel boot time), even if minimal, with this added flexibility.

Save a few milliseconds here, a few milliseconds there (not necessarily on
clock drivers, expand this to others) and you start reaching a meaningful
increase in boot performance.

>> +       help
>> +         This driver supports MediaTek MT8195 camsys and camsys_raw clocks.
>> +
>> +config COMMON_CLK_MT8195_IMGSYS
>> +       tristate "Clock driver for MediaTek MT8195 imgsys"
>> +       depends on COMMON_CLK_MT8195_VPPSYS
>> +       help
>> +         This driver supports MediaTek MT8195 imgsys and imgsys2 clocks.
>> +
>> +config COMMON_CLK_MT8195_IMP_IIC_WRAP
>> +       tristate "Clock driver for MediaTek MT8195 imp_iic_wrap"
>> +       depends on COMMON_CLK_MT8195
>> +       help
>> +         This driver supports MediaTek MT8195 I2C/I3C clocks.
>> +
>> +config COMMON_CLK_MT8195_IPESYS
>> +       tristate "Clock driver for MediaTek MT8195 ipesys"
>> +       depends on COMMON_CLK_MT8195_IMGSYS
>> +       help
>> +         This driver supports MediaTek MT8195 ipesys clocks.
>> +
>> +config COMMON_CLK_MT8195_MFGCFG
>> +       tristate "Clock driver for MediaTek MT8195 mfgcfg"
>> +       depends on COMMON_CLK_MT8195
>> +       help
>> +         This driver supports MediaTek MT8195 mfgcfg clocks.
>> +
>> +config COMMON_CLK_MT8195_VDOSYS
>> +       tristate "Clock driver for MediaTek MT8195 vdosys"
>> +       depends on COMMON_CLK_MT8195
> 
> Not sure why this option is here, out of order?

My alphabet skills finally failed me, lol.
I'll fix that for v3 :-)

Thanks!
Angelo



More information about the linux-arm-kernel mailing list