@@ -2140,22 +2140,6 @@ EXPORT_SYMBOL_GPL(usb_set_device_state);
2140
2140
* USB-3.0 buses the address is assigned by the controller hardware
2141
2141
* and it usually is not the same as the device number.
2142
2142
*
2143
- * WUSB devices are simple: they have no hubs behind, so the mapping
2144
- * device <-> virtual port number becomes 1:1. Why? to simplify the
2145
- * life of the device connection logic in
2146
- * drivers/usb/wusbcore/devconnect.c. When we do the initial secret
2147
- * handshake we need to assign a temporary address in the unauthorized
2148
- * space. For simplicity we use the first virtual port number found to
2149
- * be free [drivers/usb/wusbcore/devconnect.c:wusbhc_devconnect_ack()]
2150
- * and that becomes it's address [X < 128] or its unauthorized address
2151
- * [X | 0x80].
2152
- *
2153
- * We add 1 as an offset to the one-based USB-stack port number
2154
- * (zero-based wusb virtual port index) for two reasons: (a) dev addr
2155
- * 0 is reserved by USB for default address; (b) Linux's USB stack
2156
- * uses always #1 for the root hub of the controller. So USB stack's
2157
- * port #1, which is wusb virtual-port #0 has address #2.
2158
- *
2159
2143
* Devices connected under xHCI are not as simple. The host controller
2160
2144
* supports virtualization, so the hardware assigns device addresses and
2161
2145
* the HCD must setup data structures before issuing a set address
@@ -2168,19 +2152,13 @@ static void choose_devnum(struct usb_device *udev)
2168
2152
2169
2153
/* be safe when more hub events are proceed in parallel */
2170
2154
mutex_lock (& bus -> devnum_next_mutex );
2171
- if (udev -> wusb ) {
2172
- devnum = udev -> portnum + 1 ;
2173
- BUG_ON (test_bit (devnum , bus -> devmap .devicemap ));
2174
- } else {
2175
- /* Try to allocate the next devnum beginning at
2176
- * bus->devnum_next. */
2177
- devnum = find_next_zero_bit (bus -> devmap .devicemap , 128 ,
2178
- bus -> devnum_next );
2179
- if (devnum >= 128 )
2180
- devnum = find_next_zero_bit (bus -> devmap .devicemap ,
2181
- 128 , 1 );
2182
- bus -> devnum_next = (devnum >= 127 ? 1 : devnum + 1 );
2183
- }
2155
+
2156
+ /* Try to allocate the next devnum beginning at bus->devnum_next. */
2157
+ devnum = find_next_zero_bit (bus -> devmap .devicemap , 128 ,
2158
+ bus -> devnum_next );
2159
+ if (devnum >= 128 )
2160
+ devnum = find_next_zero_bit (bus -> devmap .devicemap , 128 , 1 );
2161
+ bus -> devnum_next = (devnum >= 127 ? 1 : devnum + 1 );
2184
2162
if (devnum < 128 ) {
2185
2163
set_bit (devnum , bus -> devmap .devicemap );
2186
2164
udev -> devnum = devnum ;
@@ -2198,9 +2176,7 @@ static void release_devnum(struct usb_device *udev)
2198
2176
2199
2177
static void update_devnum (struct usb_device * udev , int devnum )
2200
2178
{
2201
- /* The address for a WUSB device is managed by wusbcore. */
2202
- if (!udev -> wusb )
2203
- udev -> devnum = devnum ;
2179
+ udev -> devnum = devnum ;
2204
2180
if (!udev -> devaddr )
2205
2181
udev -> devaddr = (u8 )devnum ;
2206
2182
}
@@ -2693,20 +2669,6 @@ int usb_authorize_device(struct usb_device *usb_dev)
2693
2669
goto error_autoresume ;
2694
2670
}
2695
2671
2696
- if (usb_dev -> wusb ) {
2697
- struct usb_device_descriptor * descr ;
2698
-
2699
- descr = usb_get_device_descriptor (usb_dev );
2700
- if (IS_ERR (descr )) {
2701
- result = PTR_ERR (descr );
2702
- dev_err (& usb_dev -> dev , "can't re-read device descriptor for "
2703
- "authorization: %d\n" , result );
2704
- goto error_device_descriptor ;
2705
- }
2706
- usb_dev -> descriptor = * descr ;
2707
- kfree (descr );
2708
- }
2709
-
2710
2672
usb_dev -> authorized = 1 ;
2711
2673
/* Choose and set the configuration. This registers the interfaces
2712
2674
* with the driver core and lets interface drivers bind to them.
@@ -2723,7 +2685,6 @@ int usb_authorize_device(struct usb_device *usb_dev)
2723
2685
}
2724
2686
dev_info (& usb_dev -> dev , "authorized to connect\n" );
2725
2687
2726
- error_device_descriptor :
2727
2688
usb_autosuspend_device (usb_dev );
2728
2689
error_autoresume :
2729
2690
out_authorized :
@@ -2806,17 +2767,6 @@ static enum usb_ssp_rate get_port_ssp_rate(struct usb_device *hdev,
2806
2767
return USB_SSP_GEN_UNKNOWN ;
2807
2768
}
2808
2769
2809
- /* Returns 1 if @hub is a WUSB root hub, 0 otherwise */
2810
- static unsigned hub_is_wusb (struct usb_hub * hub )
2811
- {
2812
- struct usb_hcd * hcd ;
2813
- if (hub -> hdev -> parent != NULL ) /* not a root hub? */
2814
- return 0 ;
2815
- hcd = bus_to_hcd (hub -> hdev -> bus );
2816
- return hcd -> wireless ;
2817
- }
2818
-
2819
-
2820
2770
#ifdef CONFIG_USB_FEW_INIT_RETRIES
2821
2771
#define PORT_RESET_TRIES 2
2822
2772
#define SET_ADDRESS_TRIES 1
@@ -2969,9 +2919,7 @@ static int hub_port_wait_reset(struct usb_hub *hub, int port1,
2969
2919
udev -> tx_lanes = 1 ;
2970
2920
udev -> ssp_rate = USB_SSP_GEN_UNKNOWN ;
2971
2921
}
2972
- if (hub_is_wusb (hub ))
2973
- udev -> speed = USB_SPEED_WIRELESS ;
2974
- else if (udev -> ssp_rate != USB_SSP_GEN_UNKNOWN )
2922
+ if (udev -> ssp_rate != USB_SSP_GEN_UNKNOWN )
2975
2923
udev -> speed = USB_SPEED_SUPER_PLUS ;
2976
2924
else if (hub_is_superspeed (hub -> hdev ))
2977
2925
udev -> speed = USB_SPEED_SUPER ;
@@ -4880,13 +4828,10 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
4880
4828
if (initial ) {
4881
4829
/* USB 2.0 section 5.5.3 talks about ep0 maxpacket ...
4882
4830
* it's fixed size except for full speed devices.
4883
- * For Wireless USB devices, ep0 max packet is always 512 (tho
4884
- * reported as 0xff in the device descriptor). WUSB1.0[4.8.1].
4885
4831
*/
4886
4832
switch (udev -> speed ) {
4887
4833
case USB_SPEED_SUPER_PLUS :
4888
4834
case USB_SPEED_SUPER :
4889
- case USB_SPEED_WIRELESS : /* fixed at 512 */
4890
4835
udev -> ep0 .desc .wMaxPacketSize = cpu_to_le16 (512 );
4891
4836
break ;
4892
4837
case USB_SPEED_HIGH : /* fixed at 64 */
@@ -4907,10 +4852,7 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
4907
4852
}
4908
4853
}
4909
4854
4910
- if (udev -> speed == USB_SPEED_WIRELESS )
4911
- speed = "variable speed Wireless" ;
4912
- else
4913
- speed = usb_speed_string (udev -> speed );
4855
+ speed = usb_speed_string (udev -> speed );
4914
4856
4915
4857
/*
4916
4858
* The controller driver may be NULL if the controller device
@@ -5003,50 +4945,44 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
5003
4945
}
5004
4946
}
5005
4947
4948
+ for (operations = 0 ; operations < SET_ADDRESS_TRIES ; ++ operations ) {
4949
+ retval = hub_set_address (udev , devnum );
4950
+ if (retval >= 0 )
4951
+ break ;
4952
+ msleep (200 );
4953
+ }
4954
+ if (retval < 0 ) {
4955
+ if (retval != - ENODEV )
4956
+ dev_err (& udev -> dev , "device not accepting address %d, error %d\n" ,
4957
+ devnum , retval );
4958
+ goto fail ;
4959
+ }
4960
+ if (udev -> speed >= USB_SPEED_SUPER ) {
4961
+ devnum = udev -> devnum ;
4962
+ dev_info (& udev -> dev ,
4963
+ "%s SuperSpeed%s%s USB device number %d using %s\n" ,
4964
+ (udev -> config ) ? "reset" : "new" ,
4965
+ (udev -> speed == USB_SPEED_SUPER_PLUS ) ?
4966
+ " Plus" : "" ,
4967
+ (udev -> ssp_rate == USB_SSP_GEN_2x2 ) ?
4968
+ " Gen 2x2" :
4969
+ (udev -> ssp_rate == USB_SSP_GEN_2x1 ) ?
4970
+ " Gen 2x1" :
4971
+ (udev -> ssp_rate == USB_SSP_GEN_1x2 ) ?
4972
+ " Gen 1x2" : "" ,
4973
+ devnum , driver_name );
4974
+ }
4975
+
5006
4976
/*
5007
- * If device is WUSB, we already assigned an
5008
- * unauthorized address in the Connect Ack sequence;
5009
- * authorization will assign the final address.
4977
+ * cope with hardware quirkiness:
4978
+ * - let SET_ADDRESS settle, some device hardware wants it
4979
+ * - read ep0 maxpacket even for high and low speed,
5010
4980
*/
5011
- if (udev -> wusb == 0 ) {
5012
- for (operations = 0 ; operations < SET_ADDRESS_TRIES ; ++ operations ) {
5013
- retval = hub_set_address (udev , devnum );
5014
- if (retval >= 0 )
5015
- break ;
5016
- msleep (200 );
5017
- }
5018
- if (retval < 0 ) {
5019
- if (retval != - ENODEV )
5020
- dev_err (& udev -> dev , "device not accepting address %d, error %d\n" ,
5021
- devnum , retval );
5022
- goto fail ;
5023
- }
5024
- if (udev -> speed >= USB_SPEED_SUPER ) {
5025
- devnum = udev -> devnum ;
5026
- dev_info (& udev -> dev ,
5027
- "%s SuperSpeed%s%s USB device number %d using %s\n" ,
5028
- (udev -> config ) ? "reset" : "new" ,
5029
- (udev -> speed == USB_SPEED_SUPER_PLUS ) ?
5030
- " Plus" : "" ,
5031
- (udev -> ssp_rate == USB_SSP_GEN_2x2 ) ?
5032
- " Gen 2x2" :
5033
- (udev -> ssp_rate == USB_SSP_GEN_2x1 ) ?
5034
- " Gen 2x1" :
5035
- (udev -> ssp_rate == USB_SSP_GEN_1x2 ) ?
5036
- " Gen 1x2" : "" ,
5037
- devnum , driver_name );
5038
- }
4981
+ msleep (10 );
5039
4982
5040
- /* cope with hardware quirkiness:
5041
- * - let SET_ADDRESS settle, some device hardware wants it
5042
- * - read ep0 maxpacket even for high and low speed,
5043
- */
5044
- msleep (10 );
5045
- if (do_new_scheme )
5046
- break ;
5047
- }
4983
+ if (do_new_scheme )
4984
+ break ;
5048
4985
5049
- /* !do_new_scheme || wusb */
5050
4986
maxp0 = get_bMaxPacketSize0 (udev , buf , 8 , retries == 0 );
5051
4987
if (maxp0 < 0 ) {
5052
4988
retval = maxp0 ;
@@ -5128,7 +5064,7 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
5128
5064
5129
5065
usb_detect_quirks (udev );
5130
5066
5131
- if (udev -> wusb == 0 && le16_to_cpu (udev -> descriptor .bcdUSB ) >= 0x0201 ) {
5067
+ if (le16_to_cpu (udev -> descriptor .bcdUSB ) >= 0x0201 ) {
5132
5068
retval = usb_get_bos_descriptor (udev );
5133
5069
if (!retval ) {
5134
5070
udev -> lpm_capable = usb_device_supports_lpm (udev );
@@ -5404,7 +5340,6 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
5404
5340
usb_set_device_state (udev , USB_STATE_POWERED );
5405
5341
udev -> bus_mA = hub -> mA_per_port ;
5406
5342
udev -> level = hdev -> level + 1 ;
5407
- udev -> wusb = hub_is_wusb (hub );
5408
5343
5409
5344
/* Devices connected to SuperSpeed hubs are USB 3.0 or later */
5410
5345
if (hub_is_superspeed (hub -> hdev ))
0 commit comments