mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 07:00:48 +00:00
pinctrl: imx: Use temporary variable to hold pins
The pins are allocated from the heap, but in order to pass them as constant object, we need to use non-constant pointer. Achieve this by using a temporary variable. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://lore.kernel.org/r/20231129161459.1002323-6-andriy.shevchenko@linux.intel.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
271e6a0477
commit
26ea8229e7
@ -511,6 +511,7 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
|
||||
{
|
||||
const struct imx_pinctrl_soc_info *info = ipctl->info;
|
||||
struct imx_pin *pin;
|
||||
unsigned int *pins;
|
||||
int size, pin_size;
|
||||
const __be32 *list;
|
||||
int i;
|
||||
@ -557,20 +558,20 @@ static int imx_pinctrl_parse_groups(struct device_node *np,
|
||||
grp->data = devm_kcalloc(ipctl->dev,
|
||||
grp->num_pins, sizeof(struct imx_pin),
|
||||
GFP_KERNEL);
|
||||
grp->pins = devm_kcalloc(ipctl->dev,
|
||||
grp->num_pins, sizeof(unsigned int),
|
||||
GFP_KERNEL);
|
||||
if (!grp->pins || !grp->data)
|
||||
if (!grp->data)
|
||||
return -ENOMEM;
|
||||
|
||||
pins = devm_kcalloc(ipctl->dev, grp->num_pins, sizeof(*pins), GFP_KERNEL);
|
||||
if (!pins)
|
||||
return -ENOMEM;
|
||||
grp->pins = pins;
|
||||
|
||||
for (i = 0; i < grp->num_pins; i++) {
|
||||
pin = &((struct imx_pin *)(grp->data))[i];
|
||||
if (info->flags & IMX_USE_SCU)
|
||||
info->imx_pinctrl_parse_pin(ipctl, &grp->pins[i],
|
||||
pin, &list);
|
||||
info->imx_pinctrl_parse_pin(ipctl, &pins[i], pin, &list);
|
||||
else
|
||||
imx_pinctrl_parse_pin_mmio(ipctl, &grp->pins[i],
|
||||
pin, &list, np);
|
||||
imx_pinctrl_parse_pin_mmio(ipctl, &pins[i], pin, &list, np);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user