lkml.org 
[lkml]   [2017]   [Jul]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 1/1] mux: consumer: Add dummy functions for !CONFIG_MULTIPLEXER case
    Date
    From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

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

    Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    ---
    include/linux/mux/consumer.h | 42 ++++++++++++++++++++++++++++++++++++++++++
    1 file changed, 42 insertions(+)

    Changes since v1:
    * Changed #ifdef to #if IS_ENABLED.

    Changes since v2:
    * Addressed issues reported by Peter and Andy.
    * Return 0 for mux_control_states().
    * Return -EINVAL for control select()/deselect() calls.
    * Added static inline for all dummy functions.

    diff --git a/include/linux/mux/consumer.h b/include/linux/mux/consumer.h
    index 5577e1b..dc0cb7d 100644
    --- a/include/linux/mux/consumer.h
    +++ b/include/linux/mux/consumer.h
    @@ -16,6 +16,8 @@
    struct device;
    struct mux_control;

    +#if IS_ENABLED(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 +31,44 @@ void mux_control_put(struct mux_control *mux);
    struct mux_control *devm_mux_control_get(struct device *dev,
    const char *mux_name);

    +#else
    +
    +static inline unsigned int mux_control_states(struct mux_control *mux)
    +{
    + return 0;
    +}
    +
    +static inline int __must_check mux_control_select(struct mux_control *mux,
    + unsigned int state)
    +{
    + return -EINVAL;
    +}
    +
    +static inline int __must_check mux_control_try_select(struct mux_control *mux,
    + unsigned int state)
    +{
    + return -EINVAL;
    +}
    +
    +static inline int mux_control_deselect(struct mux_control *mux)
    +{
    + return -EINVAL;
    +}
    +
    +static inline struct mux_control *mux_control_get(struct device *dev,
    + const char *mux_name)
    +{
    + return ERR_PTR(-ENODEV);
    +}
    +
    +static inline void mux_control_put(struct mux_control *mux) {}
    +
    +static inline struct mux_control *devm_mux_control_get(struct device *dev,
    + const char *mux_name)
    +{
    + return ERR_PTR(-ENODEV);
    +}
    +
    +#endif /* CONFIG_MULTIPLEXER */
    +
    #endif /* _LINUX_MUX_CONSUMER_H */
    --
    2.7.4
    \
     
     \ /
      Last update: 2017-07-14 01:53    [W:3.122 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site