From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Chen-Yu Tsai <wenst@chromium.org>
Cc: Miles Chen <miles.chen@mediatek.com>,
bgolaszewski@baylibre.com, chun-jie.chen@mediatek.com,
ck.hu@mediatek.com, devicetree@vger.kernel.org,
fparent@baylibre.com, ikjn@chromium.org,
jason-jh.lin@mediatek.com, kernel@collabora.com,
konrad.dybcio@somainline.org, krzysztof.kozlowski+dt@linaro.org,
linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
marijn.suijten@somainline.org, martin.botka@somainline.org,
matthias.bgg@gmail.com, mturquette@baylibre.com,
p.zabel@pengutronix.de, paul.bouchara@somainline.org,
phone-devel@vger.kernel.org, rex-bc.chen@mediatek.com,
robh+dt@kernel.org, sam.shih@mediatek.com, sboyd@kernel.org,
tinghan.shen@mediatek.com, weiyi.lu@mediatek.com,
y.oudjana@protonmail.com, ~postmarketos/upstreaming@lists.sr.ht
Subject: Re: [PATCH v2 6/7] clk: mediatek: Export required symbols to compile clk drivers as module
Date: Thu, 19 May 2022 10:53:29 +0200 [thread overview]
Message-ID: <4fccf1ef-5dd2-5159-7f89-7c60fd281197@collabora.com> (raw)
In-Reply-To: <CAGXv+5GwqLKvM3yReZMW92ZC3nDwdbD+_x8ROBOjppgnsgGkyw@mail.gmail.com>
Il 19/05/22 10:45, Chen-Yu Tsai ha scritto:
> On Thu, May 19, 2022 at 4:26 PM AngeloGioacchino Del Regno
> <angelogioacchino.delregno@collabora.com> wrote:
>> Il 19/05/22 10:15, Chen-Yu Tsai ha scritto:
>>> On Thu, May 19, 2022 at 4:05 PM AngeloGioacchino Del Regno
>>> <angelogioacchino.delregno@collabora.com> wrote:
>>>>
>>>> Il 19/05/22 06:41, Miles Chen ha scritto:
>>>>>
>>>>> Hi Angelo,
>>>>>
>>>>>> In order to compile the clock drivers for various MediaTek SoCs as
>>>>>> modules, it is necessary to export a few functions from the MediaTek
>>>>>> specific clocks (and reset) libraries.
>>>>>>
>>>>>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>>>>>> ---
>>>>>> drivers/clk/mediatek/clk-apmixed.c | 1 +
>>>>>> drivers/clk/mediatek/clk-cpumux.c | 2 ++
>>>>>> drivers/clk/mediatek/clk-mtk.c | 2 ++
>>>>>> drivers/clk/mediatek/reset.c | 1 +
>>>>>> 4 files changed, 6 insertions(+)
>>>>>>
>>>>>> diff --git a/drivers/clk/mediatek/clk-apmixed.c b/drivers/clk/mediatek/clk-apmixed.c
>>>>>> index 6b0ab0a346e8..f126da693a7f 100644
>>>>>> --- a/drivers/clk/mediatek/clk-apmixed.c
>>>>>> +++ b/drivers/clk/mediatek/clk-apmixed.c
>>>>>> @@ -98,5 +98,6 @@ struct clk_hw *mtk_clk_register_ref2usb_tx(const char *name,
>>>>>>
>>>>>> return &tx->hw;
>>>>>> }
>>>>>> +EXPORT_SYMBOL_GPL(mtk_clk_register_ref2usb_tx);
>>>>>>
>>>>>> MODULE_LICENSE("GPL");
>>>>>> diff --git a/drivers/clk/mediatek/clk-cpumux.c b/drivers/clk/mediatek/clk-cpumux.c
>>>>>> index 2b5d48591738..25618eff6f2a 100644
>>>>>> --- a/drivers/clk/mediatek/clk-cpumux.c
>>>>>> +++ b/drivers/clk/mediatek/clk-cpumux.c
>>>>>> @@ -150,6 +150,7 @@ int mtk_clk_register_cpumuxes(struct device_node *node,
>>>>>>
>>>>>> return PTR_ERR(hw);
>>>>>> }
>>>>>> +EXPORT_SYMBOL_GPL(mtk_clk_register_cpumuxes);
>>>>>>
>>>>>> void mtk_clk_unregister_cpumuxes(const struct mtk_composite *clks, int num,
>>>>>> struct clk_hw_onecell_data *clk_data)
>>>>>> @@ -166,5 +167,6 @@ void mtk_clk_unregister_cpumuxes(const struct mtk_composite *clks, int num,
>>>>>> clk_data->hws[mux->id] = ERR_PTR(-ENOENT);
>>>>>> }
>>>>>> }
>>>>>> +EXPORT_SYMBOL_GPL(mtk_clk_unregister_cpumuxes);
>>>>>>
>>>>>> MODULE_LICENSE("GPL");
>>>>>> diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
>>>>>> index 05a188c62119..41e60a7e8ff9 100644
>>>>>> --- a/drivers/clk/mediatek/clk-mtk.c
>>>>>> +++ b/drivers/clk/mediatek/clk-mtk.c
>>>>>> @@ -459,6 +459,7 @@ int mtk_clk_simple_probe(struct platform_device *pdev)
>>>>>> mtk_free_clk_data(clk_data);
>>>>>> return r;
>>>>>> }
>>>>>> +EXPORT_SYMBOL_GPL(mtk_clk_simple_probe);
>>>>>>
>>>>>> int mtk_clk_simple_remove(struct platform_device *pdev)
>>>>>> {
>>>>>> @@ -472,5 +473,6 @@ int mtk_clk_simple_remove(struct platform_device *pdev)
>>>>>>
>>>>>> return 0;
>>>>>> }
>>>>>> +EXPORT_SYMBOL_GPL(mtk_clk_simple_remove);
>>>>>
>>>>> Thanks, I need this too. I am preparing a patch to use mtk_clk_simple_remove/mtk_clk_simple_probe
>>>>> for MT6779 clks first and maybe I can apply this to all MediaTek clk drivers.
>>>>>
>>>>> Reviewed-by: Miles Chen <miles.chen@mediatek.com>
>>>>
>>>> Hello Miles,
>>>>
>>>> thanks for telling me, because my next step would have been exactly what
>>>> you're doing, for all MediaTek clk drivers... otherwise we'd be doing
>>>> redundant work going afterwards.
>>>
>>> Should we consider using symbol namespaces (EXPORT_SYMBOL_NS)?
>>>
>>
>> I don't think we should... I don't know if any module in the common clock
>> framework is doing that, but if we want some symbol namespace separation,
>> we would want that "at least" on the entire MediaTek framework, right? :-)
>
> The sunxi-ng clk driver recently started doing this. See:
>
> http://git.kernel.org/torvalds/c/551b62b1e4cb64d3b42da0fbfdcd26a5fcd684be
That's good. And...that's one of the examples for which using "a trick" is
shorter and enhances maintainability!
>
> And it's being done for all kinds of common driver libraries.
>
> I agree that it would be done for the entire MediaTek framework.
>
>> In that case, we can simply keep using EXPORT_SYMBOL_GPL() and change the
>> Makefile in this directory to add:
>>
>> ccflags-y += -DDEFAULT_SYMBOL_NAMESPACE=COMMON_CLK_MEDIATEK
>
> Oh, I didn't know of this trick. Nice. :D
>
> I think we still need to add MODULE_IMPORT_NS() statements, right?
>
I haven't experimented with the IMPORT, but I believe if that's relative to
files in the same Makefile, we won't need to add that... let's make some
experiments :-)
>> ...but that's surely out of scope for this specific patch series.
>>
>> What do you think?
>
> It's definitely out of scope, but nice to have, to reduce the size of the
> default symbol table, and limit the usage of the symbols the driver exports.
>
Agreed.
> Regards
> ChenYu
next prev parent reply other threads:[~2022-05-19 8:53 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-18 11:16 [PATCH v2 0/7] MediaTek Helio X10 MT6795 - Clock drivers AngeloGioacchino Del Regno
2022-05-18 11:16 ` [PATCH v2 1/7] dt-bindings: mediatek: Document MT6795 system controllers bindings AngeloGioacchino Del Regno
2022-05-18 11:16 ` [PATCH v2 2/7] dt-bindings: clock: Add MediaTek Helio X10 MT6795 clock bindings AngeloGioacchino Del Regno
2022-06-01 20:02 ` Rob Herring
2022-05-18 11:16 ` [PATCH v2 3/7] dt-bindings: reset: Add bindings for MT6795 Helio X10 reset controllers AngeloGioacchino Del Regno
2022-06-01 20:02 ` Rob Herring
2022-05-18 11:16 ` [PATCH v2 4/7] dt-bindings: clock: mediatek: Add clock driver bindings for MT6795 AngeloGioacchino Del Regno
2022-05-18 13:46 ` Rob Herring
2022-05-18 11:16 ` [PATCH v2 5/7] clk: mediatek: clk-apmixed: Remove unneeded __init annotation AngeloGioacchino Del Regno
2022-05-18 11:16 ` [PATCH v2 6/7] clk: mediatek: Export required symbols to compile clk drivers as module AngeloGioacchino Del Regno
2022-05-19 4:41 ` Miles Chen
2022-05-19 8:05 ` AngeloGioacchino Del Regno
2022-05-19 8:15 ` Chen-Yu Tsai
2022-05-19 8:26 ` AngeloGioacchino Del Regno
2022-05-19 8:45 ` Chen-Yu Tsai
2022-05-19 8:53 ` AngeloGioacchino Del Regno [this message]
2022-05-18 11:16 ` [PATCH v2 7/7] clk: mediatek: Add MediaTek Helio X10 MT6795 clock drivers AngeloGioacchino Del Regno
2022-05-18 11:23 ` Matthias Brugger
2022-05-19 4:53 ` Miles Chen
2022-05-19 8:11 ` Chen-Yu Tsai
2022-05-19 8:17 ` AngeloGioacchino Del Regno
2022-05-19 8:37 ` Chen-Yu Tsai
2022-05-19 8:49 ` AngeloGioacchino Del Regno
2022-05-20 4:54 ` Miles Chen
2022-05-20 19:58 ` Boris Lysov
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=4fccf1ef-5dd2-5159-7f89-7c60fd281197@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=bgolaszewski@baylibre.com \
--cc=chun-jie.chen@mediatek.com \
--cc=ck.hu@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=fparent@baylibre.com \
--cc=ikjn@chromium.org \
--cc=jason-jh.lin@mediatek.com \
--cc=kernel@collabora.com \
--cc=konrad.dybcio@somainline.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--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=marijn.suijten@somainline.org \
--cc=martin.botka@somainline.org \
--cc=matthias.bgg@gmail.com \
--cc=miles.chen@mediatek.com \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=paul.bouchara@somainline.org \
--cc=phone-devel@vger.kernel.org \
--cc=rex-bc.chen@mediatek.com \
--cc=robh+dt@kernel.org \
--cc=sam.shih@mediatek.com \
--cc=sboyd@kernel.org \
--cc=tinghan.shen@mediatek.com \
--cc=weiyi.lu@mediatek.com \
--cc=wenst@chromium.org \
--cc=y.oudjana@protonmail.com \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/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
Powered by JetHome