aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core/pwrseq_simple.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mmc/core/pwrseq_simple.c')
-rw-r--r--drivers/mmc/core/pwrseq_simple.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/mmc/core/pwrseq_simple.c b/drivers/mmc/core/pwrseq_simple.c
index 13ef162cf066..a8b9fee4d62a 100644
--- a/drivers/mmc/core/pwrseq_simple.c
+++ b/drivers/mmc/core/pwrseq_simple.c
@@ -40,14 +40,18 @@ static void mmc_pwrseq_simple_set_gpios_value(struct mmc_pwrseq_simple *pwrseq,
40 struct gpio_descs *reset_gpios = pwrseq->reset_gpios; 40 struct gpio_descs *reset_gpios = pwrseq->reset_gpios;
41 41
42 if (!IS_ERR(reset_gpios)) { 42 if (!IS_ERR(reset_gpios)) {
43 int i; 43 int i, *values;
44 int values[reset_gpios->ndescs]; 44 int nvalues = reset_gpios->ndescs;
45 45
46 for (i = 0; i < reset_gpios->ndescs; i++) 46 values = kmalloc_array(nvalues, sizeof(int), GFP_KERNEL);
47 if (!values)
48 return;
49
50 for (i = 0; i < nvalues; i++)
47 values[i] = value; 51 values[i] = value;
48 52
49 gpiod_set_array_value_cansleep( 53 gpiod_set_array_value_cansleep(nvalues, reset_gpios->desc, values);
50 reset_gpios->ndescs, reset_gpios->desc, values); 54 kfree(values);
51 } 55 }
52} 56}
53 57