Thread (25 messages) 25 messages, 6 authors, 2025-07-19

Re: [PATCH v2 08/12] pinctrl: qcom: use generic pin function helpers

From: Bartosz Golaszewski <hidden>
Date: 2025-07-10 13:39:10
Also in: linux-arm-msm, linux-gpio, linux-mediatek, linux-mips, lkml

On Thu, Jul 10, 2025 at 2:25 PM Konrad Dybcio
[off-list ref] wrote:
On 7/9/25 4:39 PM, Bartosz Golaszewski wrote:
quoted
From: Bartosz Golaszewski <redacted>

Use the existing infrastructure for storing and looking up pin functions
in pinctrl core. Remove hand-crafted callbacks.

Signed-off-by: Bartosz Golaszewski <redacted>
---
[...]
quoted
 int msm_pinctrl_probe(struct platform_device *pdev,
                    const struct msm_pinctrl_soc_data *soc_data)
 {
+     const struct pinfunction *func;
      struct msm_pinctrl *pctrl;
      struct resource *res;
      int ret;
@@ -1606,6 +1581,14 @@ int msm_pinctrl_probe(struct platform_device *pdev,
              return PTR_ERR(pctrl->pctrl);
      }

+     for (i = 0; i < soc_data->nfunctions; i++) {
+             func = &soc_data->functions[i];
+
+             ret = pinmux_generic_add_pinfunction(pctrl->pctrl, func, NULL);
+             if (ret < 0)
+                     return ret;
+     }
It's good in principle, but we're now going to house two copies of
the function data in memory... Can we trust __initconst nowadays?
Well, if I annotate the functions struct with __initconst, then it
does indeed end up in the .init.rodata section if that's your
question. Then the kernel seems to be freeing this in
./kernel/module/main.c so I sure hope we can trust it.

Do I understand correctly that you're implicitly asking to also
annotate all affected _functions structures across all tlmm drivers?

Alternatively: we can provide another interface:
pinmux_generic_add_const_pinfunction() which - instead of a deep-copy
- would simply store addresses of existing pinfunction structures in
the underlying radix tree.

Bartosz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help