2007-12-21 13:31:44

by Al Boldi

[permalink] [raw]
Subject: [RFC] USB Kconfig: Declutter USB Kconfig Menu


The current USB Kconfig menu is rather cluttered and unorganized.

Propose new layout as follows:

lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq USB support qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted letters x
x are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press x
x <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] x
x excluded <M> module < > module capable x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x --- USB support x x
x x <*> Support for Host-side USB ---> x x
x x USB Host Controller Drivers ---> x x
x x USB Device Class drivers ---> x x
x x --- NOTE: USB_STORAGE needs SCSI, and 'SCSI disk support' may x x
x x --- also be needed; see USB_STORAGE Help for more information x x
x x <*> USB Mass Storage support ---> x x
x x [ ] The shared table of common (or usual) storage devices x x
x x [ ] USB Monitor x x
x x USB Serial Converter support ---> x x
x x USB DSL modem support ---> x x
x x USB Imaging devices ---> x x
x x USB Miscellaneous drivers ---> x x
x x USB Gadget Support ---> x x
x x x x
x x x x
x x x x
x x x x
x x x x
x x x x
x x x x
x x x x
x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
x <Select> < Exit > < Help > x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj


Any comments appreciated.


Thanks!

--
Al


2007-12-21 21:16:20

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [RFC] USB Kconfig: Declutter USB Kconfig Menu


On Dec 21 2007 16:30, Al Boldi wrote:
>
>The current USB Kconfig menu is rather cluttered and unorganized.
>
>Propose new layout as follows:
>

Yes, this has been done before in a lot of places, and attempts to
clean up more menus is always welcome.

Try to use 'menuconfig' objects so people can disable a whole menu
at once without having to enter it, e.g. that USB Gadget thing down
there.

(You are free to post UTF-8.)

> ┌──────────────────────────────────── USB support ─────────────────────────────────────┐
> │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted letters │
> │ are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press │
> │ <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] │
> │ excluded <M> module < > module capable │
> │ ┌──────────────────────────────────────────────────────────────────────────────────┐ │
> │ │ --- USB support │ │
> │ │ <*> Support for Host-side USB ---> │ │
> │ │ USB Host Controller Drivers ---> │ │
> │ │ USB Device Class drivers ---> │ │
> │ │ --- NOTE: USB_STORAGE needs SCSI, and 'SCSI disk support' may │ │
> │ │ --- also be needed; see USB_STORAGE Help for more information │ │
> │ │ <*> USB Mass Storage support ---> │ │
> │ │ [ ] The shared table of common (or usual) storage devices │ │
> │ │ [ ] USB Monitor │ │
> │ │ USB Serial Converter support ---> │ │
> │ │ USB DSL modem support ---> │ │
> │ │ USB Imaging devices ---> │ │
> │ │ USB Miscellaneous drivers ---> │ │
> │ │ USB Gadget Support ---> │ │
> │ │ │ │
> │ │ │ │
> │ │ │ │
> │ │ │ │
> │ │ │ │
> │ │ │ │
> │ │ │ │
> │ │ │ │
> │ └──────────────────────────────────────────────────────────────────────────────────┘ │
> ├──────────────────────────────────────────────────────────────────────────────────────┤
> │ <Select> < Exit > < Help > │
> └──────────────────────────────────────────────────────────────────────────────────────┘
>
>
>Any comments appreciated.
>
>
>Thanks!
>
>--
>Al
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to [email protected]
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>

2007-12-21 23:59:12

by David Brownell

[permalink] [raw]
Subject: Re: [RFC] USB Kconfig: Declutter USB Kconfig Menu

> >Propose new layout as follows:
>
> Yes, this has been done before in a lot of places, and attempts to
> clean up more menus is always welcome.
>
> Try to use 'menuconfig' objects so people can disable a whole menu
> at once without having to enter it, e.g. that USB Gadget thing down
> there.

Notice that this whole menu is for "Host-side USB", except for that
gadget stuff. That might usefully be labeled as "Peripheral-side USB".

For that matter, it could be moved up a level in the menu, so the top
level driver menu has two USB entries: Host side, and Peripheral side.

The driver stacks are independent of each other, except for common data
structures like what's in the <linux/usb/ch9.h> header file. I think
there's no real point, other than history, to having both sides share
the same menu.

- Dave


> > ┌─────────────────────────────────────────────────────────────────┐
> > │ --- USB support │
> > │ <*> Support for Host-side USB ---> │
> > │ USB Host Controller Drivers ---> │
> > │ USB Device Class drivers ---> │
> > │ --- NOTE: USB_STORAGE needs SCSI, and 'SCSI disk support' may │
> > │ --- also be needed; see USB_STORAGE Help for more information │
> > │ <*> USB Mass Storage support ---> │
> > │ [ ] The shared table of common (or usual) storage devices │
> > │ [ ] USB Monitor │
> > │ USB Serial Converter support ---> │
> > │ USB DSL modem support ---> │
> > │ USB Imaging devices ---> │
> > │ USB Miscellaneous drivers ---> │
> > │ USB Gadget Support ---> │
> > │ │

2007-12-22 06:19:31

by David Brownell

[permalink] [raw]
Subject: Re: [RFC] USB Kconfig: Declutter USB Kconfig Menu

> > Notice that this whole menu is for "Host-side USB", except for that
> > gadget stuff. That might usefully be labeled as "Peripheral-side USB".
> >
> > For that matter, it could be moved up a level in the menu, so the top
> > level driver menu has two USB entries: Host side, and Peripheral side.
>
> Actually, when you disable Host-side USB support, the menu looks like this:
>
> ┌───────────???──────────────────???──────────────────???───────────────┐
> │ --- USB support │
> │ < > Support for Host-side USB ---> │
> │ USB Gadget Support ---> │
> │ │

Right, that's what I said. It makes the gadget stuff needlessly hard
to find, as well as being less clear about what a "gadget" is than it
really should be.


> I think renaming 'USB Gadget Support' to 'Support for Peripheral-side USB' is
> probably a good idea.

Only for displaying in its topmost menu...


> > The driver stacks are independent of each other, except for common data
> > structures like what's in the <linux/usb/ch9.h> header file. I think
> > there's no real point, other than history, to having both sides share
> > the same menu.
>
> They aren't.

How can you say that, when you showed (right above!!) that they are???
Sure, there are submenus too. But they're clearly in the same menu.


> USB Gadget Support is in its own sub-menu. And strictly
> speaking, Host-side USB should be too, but some people may feel that this
> would be nesting it too deep, and so it unfolds in the same menu.

Which is why my suggestion was to have them both move up a level, with
host and peripheral side menus nested normally:

Device Drivers:
...
[ ] HID devices
< > Host side USB
< > Peripheral side USB
< > MMC/SD/SDIO card support
[ ] LED support
...

That way both host and peripheral side support would have their own
menu, and that pointless nesting would be reduced.

- Dave

2007-12-22 06:53:25

by Al Boldi

[permalink] [raw]
Subject: Re: [RFC] USB Kconfig: Declutter USB Kconfig Menu

David Brownell wrote:
> > > The driver stacks are independent of each other, except for common
> > > data structures like what's in the <linux/usb/ch9.h> header file. I
> > > think there's no real point, other than history, to having both sides
> > > share the same menu.
> >
> > They aren't.
>
> How can you say that, when you showed (right above!!) that they are???
> Sure, there are submenus too. But they're clearly in the same menu.

Well, in that case even if you moved them to the upper level, then they would
still be in the same menu, if that's what you mean.

> > USB Gadget Support is in its own sub-menu. And strictly
> > speaking, Host-side USB should be too, but some people may feel that
> > this would be nesting it too deep, and so it unfolds in the same menu.
>
> Which is why my suggestion was to have them both move up a level, with
> host and peripheral side menus nested normally:
>
> Device Drivers:
> ...
> [ ] HID devices
> < > Host side USB
> < > Peripheral side USB
> < > MMC/SD/SDIO card support
> [ ] LED support
> ...
>
> That way both host and peripheral side support would have their own
> menu, and that pointless nesting would be reduced.

You mean:
[ ] Host side USB
[ ] Peripheral side USB

Right?

All this does is loose the USB menu, which was used to group them and to
un-clutter the Device Drivers menu. Note: They would still be sharing the
same menu, only this time it's the Device Drivers menu.

I guess it's a judgment call. Let's see what others think.


Thanks!

--
Al

2007-12-22 07:22:21

by David Brownell

[permalink] [raw]
Subject: Re: [RFC] USB Kconfig: Declutter USB Kconfig Menu

> > Which is why my suggestion was to have them both move up a level, with
> > host and peripheral side menus nested normally:
> >
> > Device Drivers:
> > ...
> > [ ] HID devices
> > < > Host side USB
> > < > Peripheral side USB
> > < > MMC/SD/SDIO card support
> > [ ] LED support
> > ...
> >
> > That way both host and peripheral side support would have their own
> > menu, and that pointless nesting would be reduced.
>
> You mean:
> [ ] Host side USB
> [ ] Peripheral side USB
>
> Right?

Both of those subsystems are already set up with the main choice
as tristate "< >/<M>/<*>". If we're simplifying the navigation,
I can't see a point to requiring *two* menu actions not one.

- Dave

2007-12-22 13:51:24

by Al Boldi

[permalink] [raw]
Subject: Re: [RFC] USB Kconfig: Declutter USB Kconfig Menu

David Brownell wrote:
> > > Which is why my suggestion was to have them both move up a level, with
> > > host and peripheral side menus nested normally:
> > >
> > > Device Drivers:
> > > ...
> > > [ ] HID devices
> > > < > Host side USB
> > > < > Peripheral side USB
> > > < > MMC/SD/SDIO card support
> > > [ ] LED support
> > > ...
> > >
> > > That way both host and peripheral side support would have their own
> > > menu, and that pointless nesting would be reduced.
> >
> > You mean:
> > [ ] Host side USB
> > [ ] Peripheral side USB
> >
> > Right?
>
> Both of those subsystems are already set up with the main choice
> as tristate "< >/<M>/<*>". If we're simplifying the navigation,
> I can't see a point to requiring *two* menu actions not one.

There is a point, but it's a weak one: you want it to unfold in the same menu
as you select the option. So, if you unfold the sub-options in a separate
sub-menu, you better use [ ] (or just blank), as this will allow you to
enter the sub-menu, and see the unfold take place inside the same menu.

IMHO, I prefer < >, but newbies probably prefer [ ], as it is less abstract.

Provided there is agreement, and we go with < >, it would mean a slight
change to Host side USB, like this (note new USB Core Config sub-menu):

--- Support for Host-side USB
[ ] USB Core Config --->
[ ] USB Host Controller Drivers --->
--- NOTE: USB_STORAGE needs SCSI, and 'SCSI disk support' may
--- also be needed; see USB_STORAGE Help for more information
< > USB Mass Storage support --->
[ ] The shared table of common (or usual) storage devices
[ ] USB Monitor
< > USS720 parport driver
< > USB Serial Converter support --->
< > USB DSL modem support --->
[ ] USB Device Class drivers --->
[ ] USB Imaging devices --->
[ ] USB Miscellaneous drivers --->


Thanks!

--
Al

2007-12-23 06:07:54

by David Brownell

[permalink] [raw]
Subject: Re: [RFC] USB Kconfig: Declutter USB Kconfig Menu

On Saturday 22 December 2007, Al Boldi wrote:
> Provided there is agreement, and we go with < >, it would mean a slight
> change to Host side USB, like this (note new USB Core Config sub-menu):
>
> ? ? ? --- Support for Host-side USB
> ? ? ? [ ] ? USB Core Config ?--->

Maybe. Let's see what you turn up.

> ? ? ? [ ] ? USB Host Controller Drivers ?--->

Having at least one HCD is *NOT* optional. ;)

And for that matter, I sometimes look at HCDs as part of the core.
The layering there is fuzzier than usual, though it's getting better
now that we've started to phase out the old Linux 2.2-ish interface.


> ? ? ? --- ? NOTE: USB_STORAGE needs SCSI, and 'SCSI disk support' may
> ? ? ? --- ? also be needed; see USB_STORAGE Help for more information
> ? ? ? < > ? USB Mass Storage support ?--->
> ? ? ? [ ] ? The shared table of common (or usual) storage devices
> ? ? ? [ ] ? USB Monitor
> ? ? ? < > ? USS720 parport driver
> ? ? ? < > ? USB Serial Converter support ?--->
> ? ? ? < > ? USB DSL modem support ?--->
> ? ? ? [ ] ? USB Device Class drivers ?--->
> ? ? ? [ ] ? USB Imaging devices ?--->
> ? ? ? [ ] ? USB Miscellaneous drivers ?--->
>