• Stephen Warren's avatar
    pinctrl: Store mapping table as a list of chunks · b2b3e66e
    Stephen Warren authored
    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: default avatarStephen Warren <swarren@nvidia.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    b2b3e66e
core.c 32.2 KB