* [RFC PATCH] HID: Stop hiding options with !EXPERT
@ 2014-03-21 8:46 Jean Delvare
2014-03-28 22:13 ` Jiri Kosina
0 siblings, 1 reply; 3+ messages in thread
From: Jean Delvare @ 2014-03-21 8:46 UTC (permalink / raw)
To: linux-input; +Cc: Jiri Kosina
Many HID driver options are hidden unless EXPERT is set. While I
understand the idea of simplifying the kernel configuration for most
users, in practice I believe it adds more confusion than it helps.
One thing that worries me is that, in non-EXPERT mode, these drivers
will be either built-in or modular based on apparent magic. For
example, switching INPUT and HID from m to y will cause all these
drivers to be built into the kernel when they were previously built
as modules. Short of enabling EXPERT mode altogether, the user has no
control over that.
Generally I do not think tristate options should depend on !EXPERT.
Of these, 11 of 15 are currently in the hid subsystem.
The HID_LOGITECH option is even worse than the others. Sub-options
depend on it, and this causes menuconfig and friends to display the
option even though the user can't change its value. The help page for
HID_LOGITECH will not explain why the value can't be changed. It only
says, for example:
Depends on: INPUT [=y] && HID [=y]
and that leaves the user puzzled about why the option is forced to y.
You might argue that this is a Kconfig bug, but that doesn't make it
less annoying for the user.
Even worse is that some of the sub-options of HID_LOGITECH select
INPUT_FF_MEMLESS, which in turn gets out of control for the user. So,
if you set INPUT=y and HID=y (something most general purpose
distributions would do these days, as both modules would get loaded on
a vast majority of systems otherwise), and you want support for
force-feedback game controllers, you can't have that as a module, it
has to be built-in, regardless of how rare these devices are.
Of course, all this madness goes away once EXPERT is enabled, but then
the rest of the kernel configuration becomes more complex, which
totally voids the original point.
For this reason, I would like all HID device tristate options to be
displayed regardless of EXPERT being set or not. We can let the
default settings still depend on EXPERT, that's not intrusive.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Cc: Jiri Kosina <jkosina@suse.cz>
---
drivers/hid/Kconfig | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
--- linux-3.14-rc7.orig/drivers/hid/Kconfig 2014-03-20 21:06:41.457316973 +0100
+++ linux-3.14-rc7/drivers/hid/Kconfig 2014-03-20 21:06:59.861752396 +0100
@@ -91,7 +91,7 @@ menu "Special HID drivers"
depends on HID
config HID_A4TECH
- tristate "A4 tech mice" if EXPERT
+ tristate "A4 tech mice"
depends on HID
default !EXPERT
---help---
@@ -112,7 +112,7 @@ config HID_ACRUX_FF
game controllers.
config HID_APPLE
- tristate "Apple {i,Power,Mac}Books" if EXPERT
+ tristate "Apple {i,Power,Mac}Books"
depends on HID
default !EXPERT
---help---
@@ -140,21 +140,21 @@ config HID_AUREAL
Support for Aureal Cy se W-01RN Remote Controller and other Aureal derived remotes.
config HID_BELKIN
- tristate "Belkin Flip KVM and Wireless keyboard" if EXPERT
+ tristate "Belkin Flip KVM and Wireless keyboard"
depends on HID
default !EXPERT
---help---
Support for Belkin Flip KVM and Wireless keyboard.
config HID_CHERRY
- tristate "Cherry Cymotion keyboard" if EXPERT
+ tristate "Cherry Cymotion keyboard"
depends on HID
default !EXPERT
---help---
Support for Cherry Cymotion keyboard.
config HID_CHICONY
- tristate "Chicony Tactical pad" if EXPERT
+ tristate "Chicony Tactical pad"
depends on HID
default !EXPERT
---help---
@@ -176,7 +176,7 @@ config HID_PRODIKEYS
and some additional multimedia keys.
config HID_CYPRESS
- tristate "Cypress mouse and barcode readers" if EXPERT
+ tristate "Cypress mouse and barcode readers"
depends on HID
default !EXPERT
---help---
@@ -225,7 +225,7 @@ config HID_ELO
different devices than those handled by CONFIG_TOUCHSCREEN_USB_ELO.
config HID_EZKEY
- tristate "Ezkey BTC 8193 keyboard" if EXPERT
+ tristate "Ezkey BTC 8193 keyboard"
depends on HID
default !EXPERT
---help---
@@ -310,7 +310,7 @@ config HID_TWINHAN
Support for Twinhan IR remote control.
config HID_KENSINGTON
- tristate "Kensington Slimblade Trackball" if EXPERT
+ tristate "Kensington Slimblade Trackball"
depends on HID
default !EXPERT
---help---
@@ -336,7 +336,7 @@ config HID_LENOVO_TPKBD
controlling the mute and microphone mute LEDs.
config HID_LOGITECH
- tristate "Logitech devices" if EXPERT
+ tristate "Logitech devices"
depends on HID
default !EXPERT
---help---
@@ -413,14 +413,14 @@ config HID_MAGICMOUSE
Apple Wireless "Magic" Mouse and the Apple Wireless "Magic" Trackpad.
config HID_MICROSOFT
- tristate "Microsoft non-fully HID-compliant devices" if EXPERT
+ tristate "Microsoft non-fully HID-compliant devices"
depends on HID
default !EXPERT
---help---
Support for Microsoft devices that are not fully compliant with HID standard.
config HID_MONTEREY
- tristate "Monterey Genius KB29E keyboard" if EXPERT
+ tristate "Monterey Genius KB29E keyboard"
depends on HID
default !EXPERT
---help---
--
Jean Delvare
SUSE L3 Support
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC PATCH] HID: Stop hiding options with !EXPERT
2014-03-21 8:46 [RFC PATCH] HID: Stop hiding options with !EXPERT Jean Delvare
@ 2014-03-28 22:13 ` Jiri Kosina
2014-03-29 14:06 ` Jean Delvare
0 siblings, 1 reply; 3+ messages in thread
From: Jiri Kosina @ 2014-03-28 22:13 UTC (permalink / raw)
To: Jean Delvare; +Cc: linux-input
On Fri, 21 Mar 2014, Jean Delvare wrote:
> Many HID driver options are hidden unless EXPERT is set. While I
> understand the idea of simplifying the kernel configuration for most
> users, in practice I believe it adds more confusion than it helps.
Hi Jean,
actually this question has been raised by several people in the past
already. Copy/pasting the latest reply I have sent on this topic
===
mostly this is because we don't want to bother users with asking for every
single quirky device/vendor, as there are unfortunately a lot of them.
Usually compiling everything in doesn't waste runtime footprint (the
modules don't get loaded unless needed), and they don't cost too much disk
space either.
And if you really want to disable them, CONFIG_EMBEDDED allows you to do
that.
Please see last paragraph on
https://lkml.org/lkml/2008/10/14/266
===
i.e. it was explicitly requested by Linus.
That's the history.
Now, admittedly, it was quite some time ago, and HID world has matured a
lot since then, so the 'quirks' turned out into proper drivers. So maybe
there indeed might be a good time to try it again.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC PATCH] HID: Stop hiding options with !EXPERT
2014-03-28 22:13 ` Jiri Kosina
@ 2014-03-29 14:06 ` Jean Delvare
0 siblings, 0 replies; 3+ messages in thread
From: Jean Delvare @ 2014-03-29 14:06 UTC (permalink / raw)
To: Jiri Kosina; +Cc: linux-input
Hi Jiri,
On Fri, 28 Mar 2014 15:13:39 -0700 (PDT), Jiri Kosina wrote:
> On Fri, 21 Mar 2014, Jean Delvare wrote:
>
> > Many HID driver options are hidden unless EXPERT is set. While I
> > understand the idea of simplifying the kernel configuration for most
> > users, in practice I believe it adds more confusion than it helps.
>
> actually this question has been raised by several people in the past
> already. Copy/pasting the latest reply I have sent on this topic
>
> ===
> mostly this is because we don't want to bother users with asking for every
> single quirky device/vendor, as there are unfortunately a lot of them.
> Usually compiling everything in doesn't waste runtime footprint (the
> modules don't get loaded unless needed), and they don't cost too much disk
> space either.
The problem is that the hidden options may end up built-in, not
modular, in which case they are actually wasting runtime footprint, and
polluting /sys/bus/hid/drivers.
> And if you really want to disable them, CONFIG_EMBEDDED allows you to do
> that.
True, but CONFIG_EMBEDDED / CONFIG_EXPERT are tree-wide settings.
Enabling them un-hides a lot more options than just these HID drivers.
Not everyone wants that.
Other subsystems have solved the problem with specific options, which
give the user more flexibility over which areas he/she wants to
fine-tune. See for example CONFIG_I2C_HELPER_AUTO and
CONFIG_MEDIA_SUBDRV_AUTOSELECT. That might be an alternative if you
really think that these drivers entries should be hidden by default (I
don't.)
> Please see last paragraph on
>
> https://lkml.org/lkml/2008/10/14/266
>
> ===
>
> i.e. it was explicitly requested by Linus.
>
> That's the history.
Well, I see that Linus was mostly unhappy because the of the new
warnings introduced by the change. Plus...
> Now, admittedly, it was quite some time ago, and HID world has matured a
> lot since then, so the 'quirks' turned out into proper drivers. So maybe
> there indeed might be a good time to try it again.
... these were boolean quirks, and IIRC everything ended up being built
in the same module. So the discussion was relevant back then.
Now we have separate drivers, controlled by tristate options. This is a
completely different situation.
Also, many drivers were added since then. I doubt that hiding 11
drivers, while about 50 are always presented to the user, really helps
easing the configuration, if that was the actual goal.
In fact, looking at the git history, I can see that more drivers used
to depend on CONFIG_EMBEDDED / CONFIG_EXPERT, and these dependencies
were removed over time:
commit 4b186f72033611c2b526c7341534e71ee4afd222
Author: Jiri Kosina <jkosina@suse.cz>
Date: Wed Dec 23 13:12:32 2009 +0100
HID: make 3M PCT touchscreen driver standalone config option
commit 92688c0c3c1c9e2daf705d307e8fda1b5a180d26
Author: Jiri Kosina <jkosina@suse.cz>
Date: Mon Jan 4 12:04:59 2010 +0100
HID: make Stantum driver standalone config option
commit 2dbf209d7a7ab94266b936bd2da6a4026c279992
Author: Jiri Kosina <jkosina@suse.cz>
Date: Wed Feb 3 16:11:12 2010 +0100
HID: make full-fledged hid-bus drivers properly selectable
commit 23d386d85a9144612c4a13733aa1ca6e5a21f4a2
Author: Jiri Kosina <jkosina@suse.cz>
Date: Mon Mar 22 16:33:15 2010 +0100
HID: fixup Kconfig entry for Roccat Kone
commit 95736de984dec5b80ea9d6640d4d55ca8ff98db4
Author: Jiri Kosina <jkosina@suse.cz>
Date: Wed May 12 15:27:00 2010 +0200
HID: make Prodikeys driver standalone config option
commit 73d5e8f77e88a4d3a154dfdbb4ed2cf461b7bf21
Author: Jiri Kosina <jkosina@suse.cz>
Date: Fri May 21 13:15:17 2010 +0200
HID: fix up 'EMBEDDED' mess in Kconfig
commit f36ee074d5d563a832fbfc378207739db3a0a205
Author: Jiri Kosina <jkosina@suse.cz>
Date: Mon Aug 9 19:56:01 2010 +0200
HID: uclogic: fix up Kconfig entry
commit dfe9a31211c0a3a0252af6c87935d7ac718aadf9
Author: Jiri Kosina <jkosina@suse.cz>
Date: Mon Oct 17 17:04:58 2011 +0200
HID: primax: remove spurious dependency
commit 22ca20b250f5c9672a53b34f032f43dd2c4a4aaf
Author: Nikolai Kondrashov <spbnick@gmail.com>
Date: Tue Feb 28 13:01:46 2012 +0200
HID: kye: Add support for 3 tablets
And I may have missed some. So all I am really asking here, is that we
finish a cleanup that already started over 4 years ago.
If this is really only a question of which devices are more likely to
be used by a large number of users, then that's what defaults are for.
Thanks,
--
Jean Delvare
SUSE L3 Support
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-03-29 14:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-21 8:46 [RFC PATCH] HID: Stop hiding options with !EXPERT Jean Delvare
2014-03-28 22:13 ` Jiri Kosina
2014-03-29 14:06 ` Jean Delvare
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).