lkml.org 
[lkml]   [2018]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 2/5] gpiolib: Extract mask allocation into subroutine
    Date
    We're going to use similar code to allocate and set all the bits in a
    mask for valid gpios to use. Extract the code from the irqchip version
    so it can be reused.

    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    ---
    drivers/gpio/gpiolib.c | 20 +++++++++++++++-----
    1 file changed, 15 insertions(+), 5 deletions(-)

    diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
    index d66de67ef307..cc0e1519da45 100644
    --- a/drivers/gpio/gpiolib.c
    +++ b/drivers/gpio/gpiolib.c
    @@ -337,6 +337,20 @@ static int gpiochip_set_desc_names(struct gpio_chip *gc)
    return 0;
    }

    +static unsigned long *gpiochip_allocate_mask(struct gpio_chip *chip)
    +{
    + unsigned long *p;
    +
    + p = kcalloc(BITS_TO_LONGS(chip->ngpio), sizeof(long), GFP_KERNEL);
    + if (!p)
    + return NULL;
    +
    + /* Assume by default all GPIOs are valid */
    + bitmap_fill(p, chip->ngpio);
    +
    + return p;
    +}
    +
    /*
    * GPIO line handle management
    */
    @@ -1506,14 +1520,10 @@ static int gpiochip_irqchip_init_valid_mask(struct gpio_chip *gpiochip)
    if (!gpiochip->irq.need_valid_mask)
    return 0;

    - gpiochip->irq.valid_mask = kcalloc(BITS_TO_LONGS(gpiochip->ngpio),
    - sizeof(long), GFP_KERNEL);
    + gpiochip->irq.valid_mask = gpiochip_allocate_mask(gpiochip);
    if (!gpiochip->irq.valid_mask)
    return -ENOMEM;

    - /* Assume by default all GPIOs are valid */
    - bitmap_fill(gpiochip->irq.valid_mask, gpiochip->ngpio);
    -
    return 0;
    }

    --
    Sent by a computer through tubes
    \
     
     \ /
      Last update: 2018-03-23 17:36    [W:2.910 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site