OSDN Git Service

pinctrl: Store mapping table as a list of chunks
authorStephen Warren <swarren@nvidia.com>
Mon, 20 Feb 2012 06:45:43 +0000 (23:45 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 22 Feb 2012 16:59:31 +0000 (17:59 +0100)
commitb2b3e66e40bb60b1aa222d2f712c019653215390
tree94806f8a31ba5baa2b172b67234c08643fbcefd9
parent8b9c139f166cd55d76728a5910fa862a4e16e833
pinctrl: Store mapping table as a list of chunks

Instead of storing a single array of mapping table entries, which
requires realloc()ing that array each time it's extended and copying
the new data, simply store a list of pointers to the individual chunks.
This also removes the need to copy the mapping table at all; a pointer
is maintained to the original table, this saving memory.

A macro for_each_maps() is introduced to hide the additional complexity
of iterating over the map entries.

This change will also simplify removing chunks of entries from the mapping
table. This isn't important right now, but will be in the future, when
mapping table entries are dynamically added when parsing them from the
device tree, and removed when drivers no longer need to interact with
pinctrl.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/core.c