iio: trigger: stm32-timer: fix build issue when disabled
authorFabrice Gasnier <fabrice.gasnier@st.com>
Mon, 15 Apr 2019 09:47:22 +0000 (11:47 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 22 Apr 2019 10:34:14 +0000 (11:34 +0100)
This fixes a build issue when CONFIG_IIO_STM32_TIMER_TRIGGER isn't set but
used in stm32-dfsdm-adc driver (e.g. CONFIG_STM32_DFSDM_ADC is set):
ERROR: "is_stm32_timer_trigger" [drivers/iio/adc/stm32-dfsdm-adc.ko]
undefined!

There are two possible options to fix this issue:
- select IIO_STM32_TIMER_TRIGGER along with CONFIG_STM32_DFSDM_ADC.
  This is what's being done currently for CONFIG_STM32_ADC.
- stub "is_stm32_timer_trigger" function

Choice is made to stub this function as suggested in [1]. This is also
inspired by similar "is_stm32_lptim_trigger" function (see [2]) in
include/linux/iio/timer/stm32-lptim-trigger.h

[1]
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1977377.html
[2] https://lkml.org/lkml/2017/9/10/124

Fixes: 11646e81d775 ("iio: adc: stm32-dfsdm: add support for buffer modes")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Fix-suggested-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
include/linux/iio/timer/stm32-timer-trigger.h

index d68add80ab86d4f4f85a0aee569a09f4007f0478..cbb7c7ae6c0c623b84bb43eb56c5bbd1715e0eb1 100644 (file)
 
 #define TIM17_OC1      "tim17_oc1"
 
+#if IS_REACHABLE(CONFIG_IIO_STM32_TIMER_TRIGGER)
 bool is_stm32_timer_trigger(struct iio_trigger *trig);
-
+#else
+static inline bool is_stm32_timer_trigger(struct iio_trigger *trig)
+{
+#if IS_ENABLED(CONFIG_IIO_STM32_TIMER_TRIGGER)
+       pr_warn_once("stm32-timer-trigger not linked in\n");
+#endif
+       return false;
+}
+#endif
 #endif