Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751965AbdGHXEf (ORCPT ); Sat, 8 Jul 2017 19:04:35 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:36598 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751654AbdGHXEd (ORCPT ); Sat, 8 Jul 2017 19:04:33 -0400 Subject: Re: [PATCH v1 1/1] mux: consumer: Add dummy functions for !CONFIG_MULTIPLEXER case To: Peter Rosin , sathyanarayanan.kuppuswamy@linux.intel.com Cc: linux-kernel@vger.kernel.org References: From: "Kuppuswamy, Sathyanarayanan" Message-ID: <1bd098de-312e-d75e-0089-93848c12481c@gmail.com> Date: Sat, 8 Jul 2017 16:04:30 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2496 Lines: 84 Hi Peter, On 7/8/2017 1:55 PM, Peter Rosin wrote: > On 2017-07-07 23:41, sathyanarayanan.kuppuswamy@linux.intel.com wrote: >> From: Kuppuswamy Sathyanarayanan >> >> 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 >> --- >> 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 */ >>