Re: [PATCH] usb: dwc3: Allow building USB_DWC3_QCOM without EXTCON

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19/04/2019 13:24, Greg Kroah-Hartman wrote:

> On Fri, Apr 19, 2019 at 11:59:08AM +0200, Marc Gonzalez wrote:
>
>> Keep EXTCON support optional, since some platforms do not need it.
>>
>> Fixes: 3def4031b3e3 ("usb: dwc3: add EXTCON dependency for qcom")
>> Signed-off-by: Marc Gonzalez <marc.w.gonzalez@xxxxxxx>
>> ---
>>  drivers/usb/dwc3/Kconfig | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
>> index 2b1494460d0c..6bd1a28c535f 100644
>> --- a/drivers/usb/dwc3/Kconfig
>> +++ b/drivers/usb/dwc3/Kconfig
>> @@ -115,7 +115,8 @@ config USB_DWC3_ST
>>  
>>  config USB_DWC3_QCOM
>>  	tristate "Qualcomm Platform"
>> -	depends on EXTCON && (ARCH_QCOM || COMPILE_TEST)
>> +	depends on ARCH_QCOM || COMPILE_TEST
>> +	depends on EXTCON || !EXTCON
> 
> Why is this last line needed?  Does it really do anything?

For the record, there are 42 instances of this unintuitive kconfig syntax:

$ git grep 'depends on [A-Z_]* || !' | wc
     42     342    2965

https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt
An expression can have a value of 'n', 'm' or 'y' (0, 1, 2 respectively for calculations).


"BAR depends on FOO" means (FOO=m && BAR=m) || (FOO=y && BAR=m) || (FOO=y && BAR=y) || BAR=n

NB: (FOO=m && BAR=y) is explicitly forbidden by kconfig (special-cased?)
("This feature depends on another which has been configured as a module.
As a result, this feature will be built as a module.")


"BAR depends on !FOO" means (FOO=n && BAR=m) || (FOO=n && BAR=y)


Thus "BAR depends on FOO || !FOO" means ALL 9 combinations EXCEPT (FOO=m && BAR=y)

Regards.



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux