| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) 2014 Linaro Ltd |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Author: Ulf Hansson <ulf.hansson@linaro.org> |
|---|
| 5 | | - * |
|---|
| 6 | | - * License terms: GNU General Public License (GPL) version 2 |
|---|
| 7 | 6 | * |
|---|
| 8 | 7 | * Simple MMC power sequence management |
|---|
| 9 | 8 | */ |
|---|
| .. | .. |
|---|
| 40 | 39 | struct gpio_descs *reset_gpios = pwrseq->reset_gpios; |
|---|
| 41 | 40 | |
|---|
| 42 | 41 | if (!IS_ERR(reset_gpios)) { |
|---|
| 43 | | - int i, *values; |
|---|
| 42 | + unsigned long *values; |
|---|
| 44 | 43 | int nvalues = reset_gpios->ndescs; |
|---|
| 45 | 44 | |
|---|
| 46 | | - values = kmalloc_array(nvalues, sizeof(int), GFP_KERNEL); |
|---|
| 45 | + values = bitmap_alloc(nvalues, GFP_KERNEL); |
|---|
| 47 | 46 | if (!values) |
|---|
| 48 | 47 | return; |
|---|
| 49 | 48 | |
|---|
| 50 | | - for (i = 0; i < nvalues; i++) |
|---|
| 51 | | - values[i] = value; |
|---|
| 49 | + if (value) |
|---|
| 50 | + bitmap_fill(values, nvalues); |
|---|
| 51 | + else |
|---|
| 52 | + bitmap_zero(values, nvalues); |
|---|
| 52 | 53 | |
|---|
| 53 | | - gpiod_set_array_value_cansleep(nvalues, reset_gpios->desc, values); |
|---|
| 54 | + gpiod_set_array_value_cansleep(nvalues, reset_gpios->desc, |
|---|
| 55 | + reset_gpios->info, values); |
|---|
| 56 | + |
|---|
| 54 | 57 | kfree(values); |
|---|
| 55 | 58 | } |
|---|
| 56 | 59 | } |
|---|