• A
    iio: stm32: fix adc/trigger link error · 6d745ee8
    Arnd Bergmann 提交于
    The ADC driver can trigger on either the timer or the lptim
    trigger, but it only uses a Kconfig 'select' statement
    to ensure that the first of the two is present. When the lptim
    trigger is enabled as a loadable module, and the adc driver
    is built-in, we now get a link error:
    
    drivers/iio/adc/stm32-adc.o: In function `stm32_adc_get_trig_extsel':
    stm32-adc.c:(.text+0x4e0): undefined reference to `is_stm32_lptim_trigger'
    
    We could use a second 'select' statement and always have both
    trigger drivers enabled when the adc driver is, but it seems that
    the lptimer trigger was intentionally left optional, so it seems
    better to keep it that way.
    
    This adds a hack to use 'IS_REACHABLE()' rather than 'IS_ENABLED()',
    which avoids the link error, but instead leads to the lptimer trigger
    not being used in the broken configuration. I've added a runtime
    warning for this case to help users figure out what they did wrong
    if this should ever be done by accident.
    
    Fixes: f0b638a7 ("iio: adc: stm32: add support for lptimer triggers")
    Signed-off-by: NArnd Bergmann <arnd@arndb.de>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: NJonathan Cameron <Jonathan.Cameron@huawei.com>
    6d745ee8
stm32-lptim-trigger.h 714 字节