• Kim, Milo's avatar
    leds: trigger: use inline functions instead of macros · 39f7e08a
    Kim, Milo authored
    Macros are used in case that an inline function doesn't work.
    Otherwise, use an empty inline function.
    
    (a) Case of !CONFIG_LEDS_TRIGGERS
    Following macros are replaced with inline functions.
      led_trigger_register_simple()
      led_trigger_unregister_simple()
      led_trigger_event()
    To make inline types, the structure, 'led_trigger' should be defined.
    This structure has no member at all.
    
    (b) Case of !CONFIG_LEDS_TRIGGER_IDE_DISK
    ledtrig_ide_activity() macro is replaced with an inline function as well.
    
    (c) DEFINE_LED_TRIGGER() and DEFINE_LED_TRIGGER_GLOBAL()
    Struct 'led_trigger' is defined both cases, with CONFIG_LEDS_TRIGGERS and
    without CONFIG_LEDS_TRIGGERS.
    Those macros are moved out of CONFIG_LED_TRIGGERS because of no-dependency
    on CONFIG_LEDS_TRIGGERS.
    
    (d) Fix build errors in mmc-core driver
    After replacing macros with inline functions, following build errors occur.
    (condition: CONFIG_LEDS_TRIGGERS is not set)
    
      drivers/mmc/core/core.c: In function 'mmc_request_done':
      drivers/mmc/core/core.c:164:25: error: 'struct mmc_host' has no member named 'led'
      drivers/mmc/core/core.c: In function 'mmc_start_request':
      drivers/mmc/core/core.c:254:24: error: 'struct mmc_host' has no member named 'led'
      make[3]: *** [drivers/mmc/core/core.o] Error 1
    
    The reason of these errors is non-existent member variable, 'led'.
    It is only valid when CONFIG_LEDS_TRIGGERS is set.
    But now, it can be used without this dependency.
    To fix build errors, member 'led' is always used without its config option in
    'include/linux/mmc/host.h'.
    Signed-off-by: default avatarMilo(Woogyom) Kim <milo.kim@ti.com>
    Signed-off-by: default avatarBryan Wu <cooloney@gmail.com>
    39f7e08a
leds.h 8.29 KB