]> git.karo-electronics.de Git - karo-tx-linux.git/commit
pinctrl: make a copy of pinmux map
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 29 Nov 2011 11:52:39 +0000 (12:52 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 9 Dec 2011 11:00:10 +0000 (12:00 +0100)
commitb833b65a42dfbeb5e4cc09323ca04df6dd3279d1
treead12df7ca516d98b831cc70d1d2b2949e95df296
parent67a646688852eb441e52201e65ac6a30f614aee3
pinctrl: make a copy of pinmux map

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: Arnd Bergmann <arnd.bergmann@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/pinctrl.txt
arch/arm/mach-u300/core.c
drivers/pinctrl/pinmux.c
include/linux/pinctrl/machine.h