diff mbox

input: joystick: make USB drivers depend on USB

Message ID 20180117213010.810-1-marcus.folkesson@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marcus Folkesson Jan. 17, 2018, 9:30 p.m. UTC
A driver should not enable an entire subsystem.

Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
---
 drivers/input/joystick/Kconfig | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Dmitry Torokhov Jan. 17, 2018, 9:53 p.m. UTC | #1
On Wed, Jan 17, 2018 at 10:30:10PM +0100, Marcus Folkesson wrote:
> A driver should not enable an entire subsystem.

I disagree. As you go through menuconfig and you encounter this option
and you have the hardware and you want to enable it, you should be able
to do so. Otherwise you enable bunch of functionality, then go back,
see what new options appeared, enable them, go back, see if any more new
options appeared, and so on.

What exactly prompted this change?

> 
> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
> ---
>  drivers/input/joystick/Kconfig | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
> index 332c0cc1b2ab..4a199cff8c68 100644
> --- a/drivers/input/joystick/Kconfig
> +++ b/drivers/input/joystick/Kconfig
> @@ -279,8 +279,7 @@ config JOYSTICK_JOYDUMP
>  
>  config JOYSTICK_XPAD
>  	tristate "X-Box gamepad support"
> -	depends on USB_ARCH_HAS_HCD
> -	select USB
> +	depends on USB
>  	help
>  	  Say Y here if you want to use the X-Box pad with your computer.
>  	  Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)
> -- 
> 2.15.1
>
Randy Dunlap Jan. 18, 2018, 12:01 a.m. UTC | #2
On 01/17/2018 01:53 PM, Dmitry Torokhov wrote:
> On Wed, Jan 17, 2018 at 10:30:10PM +0100, Marcus Folkesson wrote:
>> A driver should not enable an entire subsystem.
> 
> I disagree. As you go through menuconfig and you encounter this option
> and you have the hardware and you want to enable it, you should be able
> to do so. Otherwise you enable bunch of functionality, then go back,
> see what new options appeared, enable them, go back, see if any more new
> options appeared, and so on.
> 
> What exactly prompted this change?

Two things:  today when I reviewed Marcus's patch that selected USB, I
commented something along that line.

But that was based on something that Linus has written at least two times
in the past on lkml.

>>
>> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
>> ---
>>  drivers/input/joystick/Kconfig | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
>> index 332c0cc1b2ab..4a199cff8c68 100644
>> --- a/drivers/input/joystick/Kconfig
>> +++ b/drivers/input/joystick/Kconfig
>> @@ -279,8 +279,7 @@ config JOYSTICK_JOYDUMP
>>  
>>  config JOYSTICK_XPAD
>>  	tristate "X-Box gamepad support"
>> -	depends on USB_ARCH_HAS_HCD
>> -	select USB
>> +	depends on USB
>>  	help
>>  	  Say Y here if you want to use the X-Box pad with your computer.
>>  	  Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)
>> --
Randy Dunlap Jan. 18, 2018, 6:25 p.m. UTC | #3
On 01/17/2018 01:53 PM, Dmitry Torokhov wrote:
> On Wed, Jan 17, 2018 at 10:30:10PM +0100, Marcus Folkesson wrote:
>> A driver should not enable an entire subsystem.
> 
> I disagree. As you go through menuconfig and you encounter this option
> and you have the hardware and you want to enable it, you should be able
> to do so. Otherwise you enable bunch of functionality, then go back,
> see what new options appeared, enable them, go back, see if any more new
> options appeared, and so on.

I've been thinking about this.  If a user is using a distro .config file,
it most likely has USB support already enabled, so the description above will
not apply to them.  If they are using some kernel-supplied defconfig file,
I still think that the description above will not apply to them since those
defconfig file will most likely have USB enabled if the target platform supports
USB.  And if they are using some .config file that does not have USB support
enabled, it could be that way for a very good reason.  If the target platform
does not support USB but the user enables (sets) JOYSTICK_XPAD (which selects
USB) but then their device does not work, they will be both disappointed and
confused.

Anyway, I don't think that users will face the problem that you described
very often.  But I understand what you are saying also.


> What exactly prompted this change?
> 
>>
>> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
>> ---
>>  drivers/input/joystick/Kconfig | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
>> index 332c0cc1b2ab..4a199cff8c68 100644
>> --- a/drivers/input/joystick/Kconfig
>> +++ b/drivers/input/joystick/Kconfig
>> @@ -279,8 +279,7 @@ config JOYSTICK_JOYDUMP
>>  
>>  config JOYSTICK_XPAD
>>  	tristate "X-Box gamepad support"
>> -	depends on USB_ARCH_HAS_HCD
>> -	select USB
>> +	depends on USB
>>  	help
>>  	  Say Y here if you want to use the X-Box pad with your computer.
>>  	  Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)
>> -- 
>> 2.15.1
>>
>
Dmitry Torokhov Jan. 18, 2018, 6:54 p.m. UTC | #4
On Thu, Jan 18, 2018 at 10:25:21AM -0800, Randy Dunlap wrote:
> On 01/17/2018 01:53 PM, Dmitry Torokhov wrote:
> > On Wed, Jan 17, 2018 at 10:30:10PM +0100, Marcus Folkesson wrote:
> >> A driver should not enable an entire subsystem.
> > 
> > I disagree. As you go through menuconfig and you encounter this option
> > and you have the hardware and you want to enable it, you should be able
> > to do so. Otherwise you enable bunch of functionality, then go back,
> > see what new options appeared, enable them, go back, see if any more new
> > options appeared, and so on.
> 
> I've been thinking about this.  If a user is using a distro .config file,
> it most likely has USB support already enabled, so the description above will
> not apply to them.  If they are using some kernel-supplied defconfig file,
> I still think that the description above will not apply to them since those
> defconfig file will most likely have USB enabled if the target platform supports
> USB.  And if they are using some .config file that does not have USB support
> enabled, it could be that way for a very good reason.  If the target platform
> does not support USB but the user enables (sets) JOYSTICK_XPAD (which selects
> USB) but then their device does not work, they will be both disappointed and
> confused.

You mean their system has USB ports to plug in the XPAD but the target
platform does not support USB? I doubt that happens, but it is supposed
to be handled by "depends on USB_ARCH_HAS_HCD". If platform definitely
does not have a host controller, then we'll hide drivers for USB
devices.

> 
> Anyway, I don't think that users will face the problem that you described
> very often.  But I understand what you are saying also.

Yeah, I do not think we have a good config language/tools that allows
easily turn on/off features, it's all different tradeoffs. Given that we
had this "select USB/depends on USB_ARCH_HAS_HCD" for close to 10 years
now, I'd prefer leaving it alone.

Thanks.

> 
> 
> > What exactly prompted this change?
> > 
> >>
> >> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
> >> ---
> >>  drivers/input/joystick/Kconfig | 3 +--
> >>  1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
> >> index 332c0cc1b2ab..4a199cff8c68 100644
> >> --- a/drivers/input/joystick/Kconfig
> >> +++ b/drivers/input/joystick/Kconfig
> >> @@ -279,8 +279,7 @@ config JOYSTICK_JOYDUMP
> >>  
> >>  config JOYSTICK_XPAD
> >>  	tristate "X-Box gamepad support"
> >> -	depends on USB_ARCH_HAS_HCD
> >> -	select USB
> >> +	depends on USB
> >>  	help
> >>  	  Say Y here if you want to use the X-Box pad with your computer.
> >>  	  Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)
> >> -- 
> >> 2.15.1
> >>
> > 
> 
> 
> -- 
> ~Randy
diff mbox

Patch

diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
index 332c0cc1b2ab..4a199cff8c68 100644
--- a/drivers/input/joystick/Kconfig
+++ b/drivers/input/joystick/Kconfig
@@ -279,8 +279,7 @@  config JOYSTICK_JOYDUMP
 
 config JOYSTICK_XPAD
 	tristate "X-Box gamepad support"
-	depends on USB_ARCH_HAS_HCD
-	select USB
+	depends on USB
 	help
 	  Say Y here if you want to use the X-Box pad with your computer.
 	  Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)