Hi Peter,

On 7/8/2017 1:55 PM, Peter Rosin wrote:
On 2017-07-07 23:41, [email protected] wrote:
From: Kuppuswamy Sathyanarayanan <[email protected]>

Add dummy functions to avoid compile time issues when CONFIG_MULTIPLEXER
is not enabled.
Hi!

Consumers should "select MULTIPLEXER",
If their driver can't work without mux_* calls then you can make it compulsory. But its not always true.
  so this does not make sense.
Or do you have a driver that has an optional mux consumer?
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.

Signed-off-by: Kuppuswamy Sathyanarayanan 
<[email protected]>
---
  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)
static inline

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 */


Reply via email to