On 2017-07-07 23:41, sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx wrote:If their driver can't work without mux_* calls then you can make it compulsory. But its not always true.
From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx>Hi!
Add dummy functions to avoid compile time issues when CONFIG_MULTIPLEXER
is not enabled.
Consumers should "select MULTIPLEXER",
so this does not make sense.I came across this case when I was working on Intel USB MUX driver. I think you know the history behind it. Although I am not planning to merge that driver now, but I think the use case is still valid.
Or do you have a driver that has an optional mux consumer?
Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx>static inline
---
include/linux/mux/consumer.h | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/include/linux/mux/consumer.h b/include/linux/mux/consumer.h
index 5577e1b..744a5b8 100644
--- a/include/linux/mux/consumer.h
+++ b/include/linux/mux/consumer.h
@@ -16,6 +16,7 @@
struct device;
struct mux_control;
+#ifdef CONFIG_MULTIPLEXER
unsigned int mux_control_states(struct mux_control *mux);
int __must_check mux_control_select(struct mux_control *mux,
unsigned int state);
@@ -29,4 +30,41 @@ void mux_control_put(struct mux_control *mux);
struct mux_control *devm_mux_control_get(struct device *dev,
const char *mux_name);
+#else
+unsigned int mux_control_states(struct mux_control *mux)
Cheers,
peda
+{
+ return -ENODEV;
+}
+
+int __must_check mux_control_select(struct mux_control *mux,
+ unsigned int state)
+{
+ return -ENODEV;
+}
+
+int __must_check mux_control_try_select(struct mux_control *mux,
+ unsigned int state)
+{
+ return -ENODEV;
+}
+
+int mux_control_deselect(struct mux_control *mux)
+{
+ return -ENODEV;
+}
+
+struct mux_control *mux_control_get(struct device *dev, const char *mux_name)
+{
+ return ERR_PTR(-ENODEV);
+}
+
+void mux_control_put(struct mux_control *mux) {}
+
+struct mux_control *devm_mux_control_get(struct device *dev,
+ const char *mux_name)
+{
+ return ERR_PTR(-ENODEV);
+}
+#endif
+
#endif /* _LINUX_MUX_CONSUMER_H */