Skip to content
  • Rasmus Villemoes's avatar
    gpio: reduce descriptor validation code size · a746a232
    Rasmus Villemoes authored
    
    
    While we do need macros to be able to return from the "calling"
    function, we can still factor the checks done by the VALIDATE_DESC*
    macros into a real helper function. This reduces the backslashtitis,
    avoids duplicating the logic in the two macros and saves about 1K of
    generated code:
    
    $ scripts/bloat-o-meter drivers/gpio/gpiolib.o.{0,1}
    add/remove: 1/0 grow/shrink: 0/15 up/down: 104/-1281 (-1177)
    Function                                     old     new   delta
    validate_desc                                  -     104    +104
    gpiod_set_value                              192     135     -57
    gpiod_set_raw_value                          125      67     -58
    gpiod_direction_output                       412     351     -61
    gpiod_set_value_cansleep                     150      70     -80
    gpiod_set_raw_value_cansleep                 132      52     -80
    gpiod_get_raw_value                          139      54     -85
    gpiod_set_debounce                           226     140     -86
    gpiod_direction_output_raw                   124      38     -86
    gpiod_get_value                              161      74     -87
    gpiod_cansleep                               126      39     -87
    gpiod_get_raw_value_cansleep                 130      39     -91
    gpiod_get_value_cansleep                     152      59     -93
    gpiod_is_active_low                          128      33     -95
    gpiod_request                                299     184    -115
    gpiod_direction_input                        386     266    -120
    Total: Before=25460, After=24283, chg -4.62%
    
    Signed-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
    Reviewed-by: default avatarVladimir Zapolskiy <vz@mleia.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    a746a232