usb/hub: allow hubs up to 31 children
authorinaky@linux.intel.com <inaky@linux.intel.com>
Thu, 12 Oct 2006 03:05:58 +0000 (20:05 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 1 Dec 2006 22:23:26 +0000 (14:23 -0800)
commit437052516779fea608261a50682b124315f48f01
tree19d172d8c306f6a2e20b110066ba6e8d25e76cd5
parent0215ffb08ce99e2bb59eca114a99499a4d06e704
usb/hub: allow hubs up to 31 children

Current Wireless USB host hardware (Intel i1480 for example) allows up
to 22 devices to connect, thus bringing up the max number of children
in the WUSB Host Controller to 22 'fake' ports. Upcoming hardware
might raise that limit.

Makes almost no difference to go to 31, as the bit arrays are
byte-aligned (plus an extra bit in general), so 22 bits fit in 4 bytes
as 31 do.

As well, the only other array that depends on USB_MAXCHILDREN is
'struct usb_hub->indicator'. By declaring it 'u8' instead of 'enum
hub_led_mode', we reduce the size of each entry from 4 bytes (in i386)
to 1, which will add as we when are doubling USB_MAXCHILDREN
(with 16 the size of that array is 64 bytes, with 31 would be 128; by
using u8 that goes down to 31 bytes).

Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hub.h
include/linux/usb.h