• Linus Walleij's avatar
    pinctrl: make a copy of pinmux map · 97607d15
    Linus Walleij authored
    This makes a deep copy of the pinmux function map instead of
    keeping the copy supplied from the platform around. This makes
    it possible to tag the platforms map with __initdata as is also
    done as part of this patch.
    
    Rationale: a certain target platform (PXA) has numerous
    pinmux maps, many of which will be lying around unused after
    boot in a multi-platform binary. Instead, deep-copy the one
    we're going to use and tag them all __initdata so they go away
    after boot.
    
    ChangeLog v1->v2:
    - Fixup the deep copy, missed a few items on the struct,
      plus mark bool member non-const since we're making runtime
      copies if this stuff now.
    ChangeLog v2->v3:
    - Make a shallow copy (just copy the array of map structs)
      as Arnd noticed, string constants never get discarded by the
      kernel anyway, so these pointers may be safely copied over.
    Reviewed-by: default avatarArnd Bergmann <arnd.bergmann@linaro.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    97607d15
core.c 54 KB