pinctrl: sunxi: Free configs in pinctrl_map only if it is a config map
authorChen-Yu Tsai <wens@csie.org>
Fri, 11 Nov 2016 02:35:10 +0000 (10:35 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 15 Nov 2016 09:15:04 +0000 (10:15 +0100)
commit88f01a1bd0e0dbd01b65907023dbe53cf524ea2a
treece492f589d54454807c123b4b9c5d14ae156071b
parent23d511f6fe3fb7d869539abbd1c0638b745e6560
pinctrl: sunxi: Free configs in pinctrl_map only if it is a config map

In the recently refactored sunxi pinctrl library, we are only allocating
one set of pin configs for each pinmux setting node. When the pinctrl_map
structure is freed, the pin configs should also be freed. However the
code assumed the first map would contain the configs, which actually
never happens, as the mux function map gets added first.

The proper way to do this is to look through all the maps and free the
first one whose type is actually PIN_MAP_TYPE_CONFIGS_GROUP.

Also slightly expand the comment explaining this.

Fixes: f233dbca6227 ("pinctrl: sunxi: Rework the pin config building code")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sunxi/pinctrl-sunxi.c