Commit 63cdf624 authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

gpiolib: don't build HTE code with CONFIG_HTE disabled



Hardware timestamping is only used on tegra186 platforms but we include
the code and export the symbols everywhere. Shrink the binary a bit by
compiling the relevant functions conditionally.

Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250217103922.151047-2-brgl@bgdev.pl


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent dea69f2d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2906,6 +2906,7 @@ int gpiod_direction_output_nonotify(struct gpio_desc *desc, int value)
	return 0;
}

#if IS_ENABLED(CONFIG_HTE)
/**
 * gpiod_enable_hw_timestamp_ns - Enable hardware timestamp in nanoseconds.
 *
@@ -2971,6 +2972,7 @@ int gpiod_disable_hw_timestamp_ns(struct gpio_desc *desc, unsigned long flags)
	return ret;
}
EXPORT_SYMBOL_GPL(gpiod_disable_hw_timestamp_ns);
#endif /* CONFIG_HTE */

/**
 * gpiod_set_config - sets @config for a GPIO
+22 −14
Original line number Diff line number Diff line
@@ -114,8 +114,6 @@ int gpiod_get_direction(struct gpio_desc *desc);
int gpiod_direction_input(struct gpio_desc *desc);
int gpiod_direction_output(struct gpio_desc *desc, int value);
int gpiod_direction_output_raw(struct gpio_desc *desc, int value);
int gpiod_enable_hw_timestamp_ns(struct gpio_desc *desc, unsigned long flags);
int gpiod_disable_hw_timestamp_ns(struct gpio_desc *desc, unsigned long flags);

/* Value get/set from non-sleeping context */
int gpiod_get_value(const struct gpio_desc *desc);
@@ -347,18 +345,6 @@ static inline int gpiod_direction_output_raw(struct gpio_desc *desc, int value)
	WARN_ON(desc);
	return -ENOSYS;
}
static inline int gpiod_enable_hw_timestamp_ns(struct gpio_desc *desc,
					       unsigned long flags)
{
	WARN_ON(desc);
	return -ENOSYS;
}
static inline int gpiod_disable_hw_timestamp_ns(struct gpio_desc *desc,
						unsigned long flags)
{
	WARN_ON(desc);
	return -ENOSYS;
}
static inline int gpiod_get_value(const struct gpio_desc *desc)
{
	/* GPIO can never have been requested */
@@ -559,6 +545,28 @@ struct gpio_desc *devm_fwnode_gpiod_get_index(struct device *dev,

#endif /* CONFIG_GPIOLIB */

#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_HTE)
int gpiod_enable_hw_timestamp_ns(struct gpio_desc *desc, unsigned long flags);
int gpiod_disable_hw_timestamp_ns(struct gpio_desc *desc, unsigned long flags);
#else
static inline int gpiod_enable_hw_timestamp_ns(struct gpio_desc *desc,
					       unsigned long flags)
{
	if (!IS_ENABLED(CONFIG_GPIOLIB))
		WARN_ON(desc);

	return -ENOSYS;
}
static inline int gpiod_disable_hw_timestamp_ns(struct gpio_desc *desc,
						unsigned long flags)
{
	if (!IS_ENABLED(CONFIG_GPIOLIB))
		WARN_ON(desc);

	return -ENOSYS;
}
#endif /* CONFIG_GPIOLIB && CONFIG_HTE */

static inline
struct gpio_desc *devm_fwnode_gpiod_get(struct device *dev,
					struct fwnode_handle *fwnode,