lsusb: port to hwdb

Most of the information in usb.ids is now contained in udev's hwdb. Read the
information from the hwdb instead of usb.ids.

This would allow distributions to no longer ship (most of) usb.ids by default,
but rather keep all the usb device information in the hwdb.

This patch introduces a dependency on libusb >= 196.

v2: drop support from reading data from usb.ids which is already in hwdb

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drop dependency on usb.ids

Also remove usb.ids from the repository. [Note that these were probably
never used by distributions regarless, as most distros ship the usb.ids
directly from upstream.]

Hardcode the usb-spec information that used to be in usb.ids,
but which was not moved to hwdb.

Increase the size of tha hash table from 16 to 512, though using a
hash at all is probably overkill at this point.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
lsusb: Reports if USB2.0 port is on L1 state

This patch reports the low power state L1 for ports with attahced USB2
devices.  The output will be part of the roothub port status as follows:

 ayates@magd:~$ sudo lsusb -v -s 001:001
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 ...
 Hub Descriptor:
   bLength              11
   bDescriptorType      41
   nNbrPorts             9
   wHubCharacteristic 0x000a
     No power switching (usb 1.0)
     Per-port overcurrent protection
     TT think time 8 FS bits
   bPwrOn2PwrGood       10 * 2 milli seconds
   bHubContrCurrent      0 milli Ampere
   DeviceRemovable    0x68 0x02
   PortPwrCtrlMask    0xff 0xff
  Hub Port Status:
    Port 1: 0000.0103 power enable
    Port 2: 0000.0523 highspeed power L1 enable
    Port 3: 0000.0100 power
    Port 4: 0000.0100 power
    Port 5: 0000.0503 highspeed power enable
    Port 6: 0000.0100 power
    Port 7: 0000.0100 power
    Port 8: 0000.0100 power
    Port 9: 0000.0100 power
 Device Status:     0x0001
  
In this example port id: 0000.0523 is in L1 status.
This output is collected from testing the change on a HSWULT platform.

Signed-off-by: Alexandra Yates <alexandra.yates@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
lsusb: Reports devices that support BESL on USB2.0

This patch adds USB2-LPM-Errata for USB2.0 Binary Object Store
Descriptor that support Best Effort Latency Tolerance (BELT),
with the Baseline BESL value, and Deep BESL values. Additionally, it
identifies if a Binary Object Store Descriptor is pre-errata HIRD
Link Power Management.

Signed-off-by: Alexandra Yates <alexandra.yates@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Update lsusb.py in usbutils

I added a feature (-e) to display endpoints in lsusb.py which you have
included in usbutils.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>