|
@@ -40,14 +40,18 @@ static void mmc_pwrseq_simple_set_gpios_value(struct mmc_pwrseq_simple *pwrseq,
|
|
|
struct gpio_descs *reset_gpios = pwrseq->reset_gpios;
|
|
|
|
|
|
if (!IS_ERR(reset_gpios)) {
|
|
|
- int i;
|
|
|
- int values[reset_gpios->ndescs];
|
|
|
+ int i, *values;
|
|
|
+ int nvalues = reset_gpios->ndescs;
|
|
|
|
|
|
- for (i = 0; i < reset_gpios->ndescs; i++)
|
|
|
+ values = kmalloc_array(nvalues, sizeof(int), GFP_KERNEL);
|
|
|
+ if (!values)
|
|
|
+ return;
|
|
|
+
|
|
|
+ for (i = 0; i < nvalues; i++)
|
|
|
values[i] = value;
|
|
|
|
|
|
- gpiod_set_array_value_cansleep(
|
|
|
- reset_gpios->ndescs, reset_gpios->desc, values);
|
|
|
+ gpiod_set_array_value_cansleep(nvalues, reset_gpios->desc, values);
|
|
|
+ kfree(values);
|
|
|
}
|
|
|
}
|
|
|
|