xref: /utopia/UTPA2-700.0.x/modules/usb/drv/usb_ecos/usbhost/drvHub.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 
79 
80 #include <MsCommon.h>
81 
82 #ifdef CONFIG_USB_DEBUG
83   #define DEBUG
84 #else
85   #undef DEBUG
86 #endif
87 
88 #include  "include/drvConfig.h"
89 #include  "include/drvCompiler.h"
90 #include  "include/drvTypes.h"
91 #include  "include/drvIO.h"
92 #include  "include/drvErrno.h"
93 #include  "include/drvPorts.h"
94 #include  "include/drvPCIMEM.h"
95 #include  "include/drvTimer.h"
96 #include  "include/drvList.h"
97 #include  "include/drvKernel.h"
98 #include  "include/drvBitops.h"
99 #include "include/drvCPE_AMBA.h"
100 
101 
102 
103 // USB related header files
104 #include "include/drvUSB.h"
105 #include "drvHCD.h"
106 #include "drvHUB.h"
107 #include "drvEHCI.h"
108 
109 #if 1
110 extern void USBCriticalSectionIn(MS_U8 Port);
111 extern void USBCriticalSectionOut(MS_U8 Port);
112 extern void hub_add_event_Port2(struct list_head *newent);
113 extern MS_BOOL Usb_host_Init_EX(struct usb_hcd *hcd);
114 extern struct cpe_dev cpe_ehci_dev;
115 extern struct cpe_dev cpe_ehci_dev_Port2;
116 
117 //static spinlock_t hub_event_lock = SPIN_LOCK_UNLOCKED;
118 //static DECLARE_MUTEX(usb_address0_sem);
119 U8      g_CurntPort; // used by CDC, HID
120 
121 /*static*/
122 LIST_HEAD(hub_event_list);
123 static LIST_HEAD(hub_list);
124 
125 //static DECLARE_WAIT_QUEUE_HEAD(khubd_wait);
126 //static pid_t khubd_pid = 0;      /* PID of khubd */
127 //static DECLARE_COMPLETION(khubd_exited);
128 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
129 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
130 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
131 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
132 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
133 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
134 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
135 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
136 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
137 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
138 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
139 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
140 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
141 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
142 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
143 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
144 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
145 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
146 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
147 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
148 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
149 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
150 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
151 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
152 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
153 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
154 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
155 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
156 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
157 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
158 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
159 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
160 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
161 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
162 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
163 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
164 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
165 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
166 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
167 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
168 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
169 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
170 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
171 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
172 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
173 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
174 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
175 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
176 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
177 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
178 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
179 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
180 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
181 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
182 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
183 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
184 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
185 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
186 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
187 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
188 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
189 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
190 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
191 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
192 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
193 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
194 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
195 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
196 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
197 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
198 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
199 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
200 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
201 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
202 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
203 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
204 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
205 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
206 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
207 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
208 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
209 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
210 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
211 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
212 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
213 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
214 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
215 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
216 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
217 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
218 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
219 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
220 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
221 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
222 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
223 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
224 
portspeed(int portstatus)225 static __inline__ char *portspeed (int portstatus)
226 {
227   if (portstatus & (1 << USB_PORT_FEAT_HIGHSPEED))
228         return "480 Mb/s";
229   else if (portstatus & (1 << USB_PORT_FEAT_LOWSPEED))
230     return "1.5 Mb/s";
231   else
232     return "12 Mb/s";
233 }
234 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
235 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
236 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
237 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
238 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
239 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
240 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
241 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
242 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
243 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
244 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
245 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
246 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
247 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
248 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
249 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
250 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
251 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
252 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
253 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
254 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
255 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
256 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
257 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
258 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
259 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
260 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
261 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
262 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
263 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
264 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
265 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
266 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
267 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
268 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
269 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
270 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
271 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
272 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
273 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
274 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
275 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
276 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
277 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
278 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
279 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
280 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
281 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
282 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
283 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
284 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
285 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
286 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
287 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
288 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
289 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
290 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
291 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
292 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
293 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
294 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
295 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
296 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
297 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
298 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
299 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
300 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
301 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
302 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
303 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
304 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
305 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
306 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
307 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
308 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
309 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
310 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
311 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
312 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
313 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
314 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
315 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
316 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
317 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
318 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
319 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
320 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
321 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
322 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
323 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
324 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
325 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
326 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
327 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
328 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
329 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
330 
hubdev(struct usb_device * dev)331 static __inline__ struct device_s *hubdev (struct usb_device *dev)
332 {
333   return &dev->actconfig->interface[0]->dev;
334 }
335 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
336 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
337 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
338 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
339 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
340 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
341 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
342 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
343 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
344 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
345 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
346 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
347 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
348 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
349 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
350 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
351 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
352 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
353 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
354 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
355 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
356 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
357 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
358 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
359 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
360 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
361 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
362 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
363 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
364 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
365 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
366 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
367 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
368 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
369 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
370 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
371 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
372 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
373 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
374 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
375 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
376 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
377 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
378 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
379 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
380 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
381 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
382 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
383 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
384 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
385 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
386 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
387 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
388 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
389 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
390 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
391 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
392 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
393 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
394 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
395 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
396 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
397 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
398 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
399 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
400 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
401 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
402 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
403 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
404 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
405 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
406 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
407 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
408 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
409 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
410 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
411 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
412 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
413 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
414 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
415 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
416 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
417 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
418 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
419 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
420 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
421 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
422 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
423 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
424 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
425 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
426 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
427 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
428 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
429 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
430 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
431 
get_hub_descriptor(struct usb_device * dev,void * data,int size)432 static int get_hub_descriptor(struct usb_device *dev, void *data, int size)
433 {
434   return usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
435     USB_REQ_GET_DESCRIPTOR, USB_DIR_IN | USB_RT_HUB,
436     USB_DT_HUB << 8, 0, data, size, HZ * USB_CTRL_GET_TIMEOUT);
437 }
438 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
439 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
440 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
441 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
442 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
443 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
444 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
445 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
446 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
447 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
448 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
449 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
450 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
451 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
452 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
453 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
454 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
455 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
456 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
457 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
458 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
459 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
460 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
461 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
462 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
463 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
464 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
465 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
466 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
467 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
468 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
469 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
470 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
471 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
472 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
473 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
474 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
475 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
476 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
477 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
478 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
479 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
480 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
481 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
482 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
483 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
484 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
485 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
486 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
487 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
488 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
489 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
490 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
491 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
492 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
493 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
494 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
495 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
496 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
497 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
498 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
499 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
500 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
501 
clear_hub_feature(struct usb_device * dev,int feature)502 int clear_hub_feature(struct usb_device *dev, int feature)
503 {
504   return usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
505     USB_REQ_CLEAR_FEATURE, USB_RT_HUB, feature, 0, NULL, 0, HZ);
506 }
507 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
508 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
509 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
510 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
511 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
512 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
513 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
514 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
515 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
516 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
517 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
518 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
519 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
520 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
521 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
522 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
523 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
524 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
525 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
526 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
527 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
528 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
529 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
530 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
531 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
532 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
533 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
534 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
535 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
536 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
537 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
538 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
539 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
540 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
541 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
542 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
543 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
544 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
545 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
546 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
547 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
548 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
549 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
550 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
551 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
552 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
553 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
554 
clear_port_feature(struct usb_device * dev,int port,int feature)555 int clear_port_feature(struct usb_device *dev, int port, int feature)
556 {
557   return usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
558     USB_REQ_CLEAR_FEATURE, USB_RT_PORT, feature, port, NULL, 0, HZ);
559 }
560 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
561 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
562 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
563 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
564 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
565 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
566 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
567 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
568 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
569 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
570 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
571 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
572 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
573 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
574 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
575 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
576 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
577 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
578 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
579 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
580 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
581 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
582 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
583 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
584 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
585 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
586 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
587 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
588 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
589 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
590 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
591 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
592 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
593 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
594 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
595 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
596 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
597 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
598 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
599 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
600 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
601 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
602 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
603 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
604 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
605 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
606 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
607 
set_port_feature(struct usb_device * dev,int port,int feature)608 static int set_port_feature(struct usb_device *dev, int port, int feature)
609 {
610   return usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
611     USB_REQ_SET_FEATURE, USB_RT_PORT, feature, port, NULL, 0, HZ);
612 }
613 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
614 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
615 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
616 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
617 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
618 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
619 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
620 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
621 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
622 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
623 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
624 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
625 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
626 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
627 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
628 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
629 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
630 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
631 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
632 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
633 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
634 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
635 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
636 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
637 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
638 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
639 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
640 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
641 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
642 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
643 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
644 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
645 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
646 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
647 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
648 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
649 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
650 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
651 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
652 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
653 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
654 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
655 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
656 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
657 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
658 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
659 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
660 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
661 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
662 
663 /*
664  * USB 2.0 spec Section 11.24.2.6
665  */
get_hub_status(struct usb_device * dev,struct usb_hub_status * data)666 static int get_hub_status(struct usb_device *dev,
667     struct usb_hub_status *data)
668 {
669   return usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
670     USB_REQ_GET_STATUS, USB_DIR_IN | USB_RT_HUB, 0, 0,
671     data, sizeof(*data), HZ * USB_CTRL_GET_TIMEOUT);
672 }
673 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
674 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
675 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
676 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
677 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
678 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
679 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
680 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
681 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
682 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
683 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
684 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
685 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
686 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
687 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
688 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
689 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
690 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
691 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
692 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
693 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
694 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
695 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
696 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
697 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
698 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
699 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
700 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
701 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
702 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
703 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
704 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
705 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
706 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
707 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
708 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
709 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
710 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
711 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
712 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
713 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
714 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
715 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
716 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
717 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
718 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
719 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
720 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
721 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
722 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
723 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
724 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
725 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
726 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
727 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
728 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
729 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
730 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
731 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
732 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
733 
get_port_status(struct usb_device * dev,int port,struct usb_port_status * data)734 static int get_port_status(struct usb_device *dev, int port,
735     struct usb_port_status *data)
736 {
737   return usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
738     USB_REQ_GET_STATUS, USB_DIR_IN | USB_RT_PORT, 0, port,
739     data, sizeof(*data), HZ * USB_CTRL_GET_TIMEOUT);
740 }
741 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
742 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
743 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
744 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
745 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
746 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
747 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
748 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
749 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
750 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
751 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
752 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
753 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
754 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
755 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
756 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
757 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
758 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
759 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
760 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
761 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
762 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
763 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
764 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
765 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
766 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
767 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
768 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
769 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
770 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
771 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
772 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
773 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
774 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
775 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
776 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
777 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
778 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
779 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
780 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
781 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
782 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
783 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
784 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
785 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
786 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
787 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
788 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
789 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
790 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
791 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
792 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
793 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
794 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
795 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
796 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
797 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
798 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
799 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
800 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
801 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
802 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
803 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
804 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
805 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
806 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
807 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
808 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
809 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
810 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
811 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
812 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
813 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
814 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
815 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
816 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
817 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
818 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
819 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
820 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
821 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
822 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
823 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
824 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
825 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
826 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
827 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
828 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
829 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
830 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
831 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
832 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
833 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
834 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
835 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
836 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
837 
hub_irq(struct urb * urb,struct pt_regs * regs)838 static void hub_irq(struct urb *urb, struct pt_regs *regs)
839 {
840   struct usb_hub *hub = (struct usb_hub *)urb->context;
841   U32 flags;
842   int status;
843   int tmp = ENOENT;
844   struct usb_hcd    *hcd = (struct usb_hcd*) urb->dev->bus->hcpriv;
845   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
846   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
847   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
848   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
849   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
850   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
851   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
852   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
853   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
854   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
855   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
856   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
857   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
858   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
859   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
860   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
861   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
862   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
863   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
864   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
865   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
866   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
867   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
868   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
869   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
870   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
871   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
872   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
873   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
874   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
875   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
876   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
877   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
878   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
879   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
880   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
881   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
882   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
883   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
884   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
885   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
886   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
887   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
888   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
889 
890   switch (urb->status) {
891   case -ENOENT:
892   case -ECONNRESET:
893   case -ESHUTDOWN:
894 	  diag_printf("<hub_irq> urb->status : %d \n", urb->status);
895     return;
896 
897   default:
898     dev_dbg (&hub->intf->dev, "transfer --> %d\n", urb->status);
899     tmp = urb->status;
900     if ((++hub->nerrors < 10) || hub->error)
901       goto resubmit;
902     hub->error = urb->status;
903 
904   case 0:
905     break;
906   }
907 
908   hub->nerrors = 0;
909   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
910   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
911   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
912   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
913   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
914   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
915   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
916   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
917   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
918   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
919   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
920   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
921   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
922   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
923   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
924   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
925   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
926   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
927   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
928   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
929   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
930   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
931   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
932   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
933   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
934   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
935   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
936   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
937   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
938   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
939   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
940   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
941   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
942   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
943   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
944   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
945   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
946 
947   spin_lock_irqsave(&hub_event_lock, flags);
948   if (list_empty(&hub->event_list)) {
949     //OS_DisableDispatch();
950     MS_U32 u32OldIntr;
951     u32OldIntr = MsOS_DisableAllInterrupts();
952     //list_add(&hub->event_list, &hub_event_list);
953     list_add(&hub->event_list, hcd->phub_event); // new
954 
955     //MsOS_EnableInterrupt(E_IRQ_FIQ_ALL);
956      MsOS_RestoreAllInterrupts(u32OldIntr);
957     //diag_printf("%s>>> Add HUB EVENT!\n", hcd->product_desc);
958 
959     //wake_up(&khubd_wait);
960   }
961   spin_unlock_irqrestore(&hub_event_lock, flags);
962   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
963   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
964   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
965   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
966   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
967   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
968   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
969   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
970   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
971   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
972   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
973   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
974   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
975   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
976   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
977   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
978   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
979   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
980   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
981   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
982   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
983   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
984   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
985   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
986   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
987   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
988   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
989   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
990   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
991   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
992   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
993   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
994   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
995   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
996   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
997   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
998   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
999   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1000   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1001   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1002   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1003   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1004   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1005   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1006   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1007   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1008   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1009   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1010   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1011   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1012   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1013   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1014   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1015   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1016   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1017   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1018   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1019   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1020   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1021   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1022   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1023   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1024   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1025   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1026   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1027   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1028   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1029   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1030   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1031   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1032   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1033   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1034 
1035 resubmit:
1036     //diag_printf("<hub_irq> resubmit!!!by %s\n", hcd->product_desc);
1037   if ((status = usb_submit_urb (hub->urb, GFP_ATOMIC)) != 0
1038       /* ENODEV means we raced disconnect() */
1039       && status != -ENODEV) {
1040     dev_err (&hub->intf->dev, "previous urb status is %d, resubmit --> %d\n", tmp,status);
1041     usb_err("hcd->state=%d\n",hcd->state);
1042   }
1043 }
1044 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1045 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1046 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1047 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1048 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1049 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1050 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1051 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1052 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1053 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1054 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1055 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1056 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1057 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1058 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1059 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1060 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1061 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1062 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1063 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1064 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1065 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1066 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1067 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1068 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1069 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1070 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1071 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1072 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1073 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1074 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1075 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1076 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1077 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1078 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1079 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1080 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1081 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1082 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1083 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1084 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1085 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1086 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1087 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1088 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1089 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1090 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1091 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1092 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1093 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1094 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1095 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1096 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1097 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1098 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1099 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1100 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1101 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1102 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1103 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1104 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1105 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1106 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1107 
1108 #ifdef USB_EHCI_TT
1109 static __inline__ int
hub_clear_tt_buffer(struct usb_device * hub,U16 devinfo,U16 tt)1110 hub_clear_tt_buffer (struct usb_device *hub, U16 devinfo, U16 tt)
1111 {
1112   return usb_control_msg (hub, usb_rcvctrlpipe (hub, 0),
1113     HUB_CLEAR_TT_BUFFER, USB_DIR_IN | USB_RECIP_OTHER,
1114     devinfo, tt, 0, 0, HZ);
1115 }
1116 
1117 
1118 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1119 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1120 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1121 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1122 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1123 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1124 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1125 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1126 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1127 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1128 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1129 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1130 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1131 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1132 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1133 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1134 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1135 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1136 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1137 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1138 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1139 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1140 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1141 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1142 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1143 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1144 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1145 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1146 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1147 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1148 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1149 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1150 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1151 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1152 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1153 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1154 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1155 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1156 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1157 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1158 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1159 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1160 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1161 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1162 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1163 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1164 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1165 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1166 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1167 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1168 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1169 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1170 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1171 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1172 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1173 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1174 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1175 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1176 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1177 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1178 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1179 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1180 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1181 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1182 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
hub_tt_kevent(void * arg)1183 static void hub_tt_kevent (void *arg)
1184 {
1185   struct usb_hub    *hub = arg;
1186   U32    flags;
1187 
1188   spin_lock_irqsave (&hub->tt.lock, flags);
1189   while (!list_empty (&hub->tt.clear_list)) {
1190     struct list_head  *temp;
1191     struct usb_tt_clear  *clear;
1192     struct usb_device  *dev;
1193     int      status;
1194 
1195     temp = hub->tt.clear_list.next;
1196     list_entry (temp, struct usb_tt_clear, clear_list, struct list_head,clear );
1197     list_del (&clear->clear_list);
1198 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1199 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1200 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1201 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1202 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1203 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1204 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1205 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1206 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1207 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1208 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1209 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1210 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1211 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1212 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1213 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1214 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1215 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1216 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1217 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1218 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1219 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1220 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1221 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1222 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1223 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1224 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1225 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1226 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1227 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1228 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1229 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1230 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1231 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1232 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1233 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1234 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1235 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1236 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1237 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1238 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1239 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1240 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1241 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1242 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1243 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1244 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1245 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1246 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1247 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1248 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1249 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1250 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1251 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1252 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1253 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1254 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1255 
1256     spin_unlock_irqrestore (&hub->tt.lock, flags);
1257     dev = interface_to_usbdev (hub->intf);
1258     status = hub_clear_tt_buffer (dev, clear->devinfo, clear->tt);
1259     spin_lock_irqsave (&hub->tt.lock, flags);
1260 
1261     if (status)
1262       err ("usb-%s-%s clear tt %d (%04x) error %d",
1263         dev->bus->bus_name, dev->devpath,
1264         clear->tt, clear->devinfo, status);
1265     kfree (clear);
1266   }
1267   spin_unlock_irqrestore (&hub->tt.lock, flags);
1268 }
usb_hub_tt_clear_buffer(struct usb_device * dev,int pipe)1269 void usb_hub_tt_clear_buffer (struct usb_device *dev, int pipe)
1270 {
1271   struct usb_tt    *utt = dev->tt;
1272   U32    flags;
1273   struct usb_tt_clear  *clear;
1274   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1275   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1276   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1277   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1278   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1279   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1280   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1281   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1282   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1283   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1284   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1285   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1286   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1287   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1288   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1289   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1290   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1291   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1292   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1293   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1294   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1295   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1296   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1297   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1298   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1299   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1300   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1301   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1302   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1303   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1304   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1305   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1306   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1307   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1308   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1309   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1310   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1311 
1312   if ((clear = kmalloc (sizeof *clear, SLAB_ATOMIC)) == 0) {
1313     err ("can't allocate CLEAR_TT_BUFFER state for hub at usb-%s-%s",
1314       dev->bus->bus_name, utt->hub->devpath);
1315     return;
1316   }
1317 
1318 
1319   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1320   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1321   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1322   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1323   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1324   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1325   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1326   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1327   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1328   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1329   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1330   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1331   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1332   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1333   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1334   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1335   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1336   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1337   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1338   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1339   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1340   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1341   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1342   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1343   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1344   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1345   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1346   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1347   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1348   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1349   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1350   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1351   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1352   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1353   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1354   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1355   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1356   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1357   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1358   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1359   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1360   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1361   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1362   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1363   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1364   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1365   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1366   clear->tt = utt->multi ? dev->ttport : 1;
1367   clear->devinfo = usb_pipeendpoint (pipe);
1368   clear->devinfo |= dev->devnum << 4;
1369   clear->devinfo |= usb_pipecontrol (pipe)
1370       ? (USB_ENDPOINT_XFER_CONTROL << 11)
1371       : (USB_ENDPOINT_XFER_BULK << 11);
1372   if (usb_pipein (pipe))
1373     clear->devinfo |= 1 << 15;
1374   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1375   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1376   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1377   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1378   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1379   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1380   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1381   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1382   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1383   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1384   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1385   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1386   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1387   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1388   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1389   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1390   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1391   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1392   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1393   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1394   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1395   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1396   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1397   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1398   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1399   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1400   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1401   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1402   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1403   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1404   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1405   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1406   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1407   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1408   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1409   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1410   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1411   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1412   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1413   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1414   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1415   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1416   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1417   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1418   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1419   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1420   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1421   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1422   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1423   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1424   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1425   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1426   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1427   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1428   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1429   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1430   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1431   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1432   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1433   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1434   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1435   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1436   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1437   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1438   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1439   spin_lock_irqsave (&utt->lock, flags);
1440   list_add_tail (&clear->clear_list, &utt->clear_list);
1441   //schedule_work (&tt->kevent);
1442   spin_unlock_irqrestore (&utt->lock, flags);
1443 }
1444 
1445 #endif
1446 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1447 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1448 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1449 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1450 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1451 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1452 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1453 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1454 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1455 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1456 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1457 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1458 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1459 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1460 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1461 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1462 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1463 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1464 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1465 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1466 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1467 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1468 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1469 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1470 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1471 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1472 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1473 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1474 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1475 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1476 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1477 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1478 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1479 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1480 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1481 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1482 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1483 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1484 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1485 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1486 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1487 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1488 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1489 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1490 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1491 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1492 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1493 
hub_power_on(struct usb_hub * hub)1494 void hub_power_on(struct usb_hub *hub)
1495 {
1496   struct usb_device *dev;
1497   int i;
1498 
1499   dev_dbg(hubdev(interface_to_usbdev(hub->intf)),
1500     "enabling power on all ports%s","\n");
1501   dev = interface_to_usbdev(hub->intf);
1502   for (i = 0; i < hub->descriptor.bNbrPorts; i++)
1503     set_port_feature(dev, i + 1, USB_PORT_FEAT_POWER);
1504 
1505   wait_ms(hub->descriptor.bPwrOn2PwrGood * 2);
1506 }
1507 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1508 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1509 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1510 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1511 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1512 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1513 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1514 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1515 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1516 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1517 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1518 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1519 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1520 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1521 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1522 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1523 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1524 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1525 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1526 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1527 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1528 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1529 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1530 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1531 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1532 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1533 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1534 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1535 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1536 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1537 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1538 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1539 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1540 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1541 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1542 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1543 
hub_hub_status(struct usb_hub * hub,U16 * status,U16 * change)1544 int hub_hub_status(struct usb_hub *hub,
1545     U16 *status, U16 *change)
1546 {
1547   struct usb_device *dev = interface_to_usbdev (hub->intf);
1548   int ret;
1549 
1550   ret = get_hub_status(dev, &hub->status.hub);
1551   if (ret < 0) {
1552     dev_err (hubdev (dev),
1553       "%s failed (err = %d)\n", __FUNCTION__, ret);
1554 
1555 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1556 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1557 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1558 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1559 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1560 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1561 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1562 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1563 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1564 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1565 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1566 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1567 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1568 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1569 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1570 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1571 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1572 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1573 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1574 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1575 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1576 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1577 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1578 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1579 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1580 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1581 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1582 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1583 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1584 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1585 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1586 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1587 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1588 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1589 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1590 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1591 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1592 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1593 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1594 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1595 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1596   }
1597   else {
1598     *status = LE16ToCPU(hub->status.hub.wHubStatus);
1599     *change = LE16ToCPU(hub->status.hub.wHubChange);
1600     ret = 0;
1601   }
1602   return ret;
1603 }
1604 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1605 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1606 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1607 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1608 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1609 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1610 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1611 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1612 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1613 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1614 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1615 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1616 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1617 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1618 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1619 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1620 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1621 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1622 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1623 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1624 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1625 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1626 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1627 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1628 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1629 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1630 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1631 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1632 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1633 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1634 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1635 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1636 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1637 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1638 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1639 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1640 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1641 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1642 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1643 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1644 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1645 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1646 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1647 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1648 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1649 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1650 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1651 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1652 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1653 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1654 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1655 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1656 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1657 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1658 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1659 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1660 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1661 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1662 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1663 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1664 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1665 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1666 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1667 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1668 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1669 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1670 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1671 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1672 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1673 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1674 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1675 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1676 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1677 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1678 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1679 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1680 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1681 
hub_configure(struct usb_hub * hub,struct usb_endpoint_descriptor * endpoint)1682 static int hub_configure(struct usb_hub *hub,
1683   struct usb_endpoint_descriptor *endpoint)
1684 {
1685   struct usb_device *dev = interface_to_usbdev (hub->intf);
1686   struct device_s *hub_dev;
1687   U16 hubstatus, hubchange;
1688   U32 pipe;
1689   int maxp, ret;
1690   char *message;
1691 
1692   hub->buffer = (char (*)[3]) usb_buffer_alloc(dev, sizeof(*hub->buffer), GFP_KERNEL,
1693       &hub->buffer_dma);
1694   if (!hub->buffer) {
1695     message = "can't allocate hub irq buffer";
1696     ret = -ENOMEM;
1697     goto fail;
1698   }
1699 
1700 #if 0
1701   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1702   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1703   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1704   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1705   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1706   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1707   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1708   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1709   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1710   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1711   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1712   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1713   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1714   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1715   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1716   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1717   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1718   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1719   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1720   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1721   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1722   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1723   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1724   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1725   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1726   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1727   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1728   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1729   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1730   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1731   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1732   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1733   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1734   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1735   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1736   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1737   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1738   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1739   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1740   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1741   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1742   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1743   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1744   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1745   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1746   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1747   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1748   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1749   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1750   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1751   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1752   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1753   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1754   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1755   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1756   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1757   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1758   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1759   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1760   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1761   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1762   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1763   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1764 
1765   hub->status = kmalloc(sizeof(*hub->status), GFP_KERNEL);
1766   if (!hub->status) {
1767     message = "can't kmalloc hub status buffer";
1768     ret = -ENOMEM;
1769     goto fail;
1770   }
1771 
1772   hub->descriptor = kmalloc(sizeof(*hub->descriptor), GFP_KERNEL);
1773   if (!hub->descriptor) {
1774     message = "can't kmalloc hub descriptor";
1775     ret = -ENOMEM;
1776     goto fail;
1777   }
1778 #endif
1779 
1780   ret = get_hub_descriptor(dev, &hub->descriptor,
1781       sizeof(hub->descriptor));
1782   if (ret < 0) {
1783     message = "can't read hub descriptor";
1784     goto fail;
1785 
1786 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1787 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1788 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1789 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1790 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1791 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1792 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1793 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1794 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1795 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1796 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1797 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1798 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1799 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1800 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1801 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1802 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1803 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1804 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1805 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1806 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1807 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1808 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1809 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1810 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1811 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1812 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1813 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1814 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1815 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1816 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1817 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1818 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1819 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1820 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1821 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1822 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1823 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1824 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1825 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1826 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1827 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1828 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1829 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1830 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1831 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1832 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1833 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1834 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1835 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1836 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1837 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1838 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1839 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1840 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1841 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1842 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1843 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1844 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1845 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1846 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1847 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1848 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1849 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1850 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1851 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1852 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1853   } else if (hub->descriptor.bNbrPorts > USB_MAXCHILDREN) {
1854     message = "hub has too many ports!";
1855     ret = -ENODEV;
1856     goto fail;
1857   }
1858 
1859   hub_dev = hubdev(dev);
1860   dev->maxchild = hub->descriptor.bNbrPorts;
1861   dev_info (hub_dev, "%d port%s detected\n", dev->maxchild,
1862     (dev->maxchild == 1) ? "" : "s");
1863   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1864   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1865   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1866   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1867   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1868   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1869   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1870   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1871   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1872   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1873   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1874   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1875   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1876   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1877   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1878   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1879   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1880   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1881   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1882   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1883   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1884   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1885   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1886   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1887   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1888   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1889   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1890   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1891   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1892   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1893   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1894   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1895   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1896   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1897   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1898   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1899   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1900   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1901   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1902   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1903   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1904   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1905   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1906   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1907   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1908   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1909   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1910   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1911   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1912   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1913   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1914   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1915   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1916   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1917   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1918   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1919   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1920   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1921   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1922   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1923   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1924   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1925   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1926   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1927   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1928   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1929   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1930   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1931   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1932   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1933 
1934   hub->descriptor.wHubCharacteristics = LE16ToCPU(hub->descriptor.wHubCharacteristics);
1935 
1936   if (hub->descriptor.wHubCharacteristics & HUB_CHAR_COMPOUND) {
1937     int  i;
1938     char  portstr [USB_MAXCHILDREN + 1];
1939 
1940     for (i = 0; i < dev->maxchild; i++)
1941       portstr[i] = hub->descriptor.DeviceRemovable
1942             [((i + 1) / 8)] & (1 << ((i + 1) % 8))
1943         ? 'F' : 'R';
1944     portstr[dev->maxchild] = 0;
1945     dev_dbg(hub_dev, "compound device; port removable status: %s\n", portstr);
1946   } else
1947     dev_dbg(hub_dev, "standalone hub%s","\n");
1948   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1949   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1950   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1951   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1952   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1953   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1954   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1955   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1956   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1957   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1958   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1959   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1960   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1961   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1962   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1963   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1964   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1965   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1966   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1967   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1968   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1969   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1970   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1971   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1972   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1973   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1974   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1975   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1976   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1977   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1978   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1979   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1980   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1981   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1982   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1983   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1984   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1985   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1986   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1987   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1988   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
1989 
1990   switch (hub->descriptor.wHubCharacteristics & HUB_CHAR_LPSM) {
1991     case 0x00:
1992       dev_dbg(hub_dev, "ganged power switching%s","\n");
1993       break;
1994     case 0x01:
1995       dev_dbg(hub_dev, "individual port power switching%s","\n");
1996       break;
1997     case 0x02:
1998     case 0x03:
1999       dev_dbg(hub_dev, "unknown reserved power switching mode%s","\n");
2000       break;
2001   }
2002   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2003   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2004   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2005   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2006   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2007   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2008   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2009   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2010   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2011   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2012   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2013   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2014   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2015   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2016   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2017   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2018   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2019   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2020   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2021   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2022   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2023   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2024   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2025   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2026   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2027   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2028   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2029   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2030   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2031   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2032   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2033   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2034   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2035   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2036   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2037   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2038   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2039   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2040   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2041   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2042   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2043   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2044   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2045   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2046   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2047   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2048   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2049   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2050   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2051   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2052   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2053   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2054   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2055   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2056   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2057   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2058   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2059   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2060   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2061   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2062   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2063   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2064   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2065   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2066   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2067   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2068 
2069   switch (hub->descriptor.wHubCharacteristics & HUB_CHAR_OCPM) {
2070     case 0x00:
2071       dev_dbg(hub_dev, "global over-current protection%s","\n");
2072       break;
2073     case 0x08:
2074       dev_dbg(hub_dev, "individual port over-current protection%s","\n");
2075       break;
2076     case 0x10:
2077     case 0x18:
2078       dev_dbg(hub_dev, "no over-current protection%s","\n");
2079                         break;
2080   }
2081   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2082   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2083   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2084   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2085   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2086   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2087   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2088   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2089   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2090   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2091   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2092   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2093   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2094   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2095   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2096   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2097   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2098   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2099   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2100   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2101   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2102   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2103   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2104   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2105   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2106   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2107   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2108   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2109   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2110   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2111   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2112   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2113   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2114   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2115   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2116   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2117   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2118   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2119   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2120   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2121   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2122   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2123   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2124   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2125   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2126   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2127   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2128   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2129   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2130   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2131   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2132   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2133   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2134   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2135   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2136   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2137   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2138   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2139   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2140   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2141   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2142   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2143   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2144   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2145   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2146   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2147   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2148   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2149   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2150   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2151   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2152   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2153   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2154   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2155 
2156   spin_lock_init (&hub->tt.lock);
2157   INIT_LIST_HEAD (&hub->tt.clear_list);
2158   //INIT_WORK (&hub->tt.kevent, hub_tt_kevent, hub);
2159   switch (dev->descriptor.bDeviceProtocol) {
2160     case 0:
2161       break;
2162     case 1:
2163       dev_dbg(hub_dev, "Single TT%s","\n");
2164       hub->tt.hub = dev;
2165       break;
2166     case 2:
2167       dev_dbg(hub_dev, "TT per port%s","\n");
2168       hub->tt.hub = dev;
2169       hub->tt.multi = 1;
2170       break;
2171     default:
2172       dev_dbg(hub_dev, "Unrecognized hub protocol %d\n",
2173         dev->descriptor.bDeviceProtocol);
2174       break;
2175   }
2176   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2177   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2178   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2179   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2180   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2181   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2182   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2183   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2184   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2185   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2186   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2187   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2188   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2189   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2190   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2191   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2192   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2193   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2194   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2195   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2196   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2197   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2198   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2199   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2200   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2201   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2202   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2203   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2204   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2205   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2206   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2207   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2208   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2209   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2210   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2211   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2212   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2213   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2214   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2215   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2216   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2217   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2218   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2219   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2220   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2221   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2222   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2223   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2224   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2225   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2226   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2227   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2228   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2229   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2230   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2231   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2232   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2233   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2234   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2235   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2236   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2237   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2238   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2239   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2240   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2241   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2242   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2243   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2244   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2245 
2246   switch (hub->descriptor.wHubCharacteristics & HUB_CHAR_TTTT) {
2247     case 0x00:
2248       if (dev->descriptor.bDeviceProtocol != 0)
2249         dev_dbg(hub_dev, "TT requires at most 8 FS bit times%s","\n");
2250       break;
2251     case 0x20:
2252       dev_dbg(hub_dev, "TT requires at most 16 FS bit times%s","\n");
2253       break;
2254     case 0x40:
2255       dev_dbg(hub_dev, "TT requires at most 24 FS bit times%s","\n");
2256       break;
2257     case 0x60:
2258       dev_dbg(hub_dev, "TT requires at most 32 FS bit times%s","\n");
2259       break;
2260   }
2261 
2262   dev_dbg(hub_dev, "Port indicators are %s supported\n",
2263       (hub->descriptor.wHubCharacteristics & HUB_CHAR_PORTIND)
2264         ? "" : "not");
2265   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2266   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2267   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2268   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2269   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2270   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2271   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2272   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2273   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2274   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2275   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2276   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2277   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2278   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2279   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2280   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2281   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2282   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2283   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2284   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2285   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2286   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2287   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2288   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2289   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2290   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2291   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2292   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2293   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2294   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2295   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2296   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2297   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2298   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2299   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2300   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2301   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2302   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2303   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2304   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2305   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2306   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2307   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2308   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2309   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2310   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2311   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2312   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2313   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2314   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2315   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2316   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2317   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2318   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2319   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2320   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2321   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2322   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2323   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2324   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2325   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2326   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2327   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2328   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2329   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2330   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2331   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2332   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2333   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2334   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2335   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2336   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2337   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2338   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2339   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2340   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2341 
2342   dev_dbg(hub_dev, "power on to power good time: %dms\n",
2343     hub->descriptor.bPwrOn2PwrGood * 2);
2344   dev_dbg(hub_dev, "hub controller current requirement: %dmA\n",
2345     hub->descriptor.bHubContrCurrent);
2346   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2347   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2348   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2349   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2350   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2351   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2352   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2353   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2354   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2355   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2356   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2357   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2358   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2359   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2360   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2361   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2362   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2363   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2364   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2365   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2366   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2367   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2368   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2369   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2370   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2371   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2372   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2373   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2374   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2375   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2376   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2377   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2378   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2379   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2380   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2381   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2382   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2383   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2384   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2385   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2386   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2387   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2388   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2389   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2390   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2391   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2392   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2393   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2394   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2395   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2396   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2397   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2398   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2399   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2400   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2401   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2402   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2403   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2404   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2405   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2406   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2407   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2408   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2409   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2410   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2411   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2412   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2413   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2414   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2415   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2416   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2417   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2418   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2419   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2420   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2421   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2422 
2423   ret = hub_hub_status(hub, &hubstatus, &hubchange);
2424   if (ret < 0) {
2425     message = "can't get hub status";
2426     goto fail;
2427   }
2428   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2429   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2430   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2431   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2432   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2433   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2434   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2435   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2436   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2437   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2438   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2439   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2440   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2441   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2442   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2443   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2444   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2445   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2446   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2447   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2448   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2449   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2450   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2451   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2452   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2453   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2454   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2455   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2456   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2457   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2458   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2459   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2460   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2461   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2462   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2463   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2464   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2465   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2466   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2467   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2468   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2469   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2470   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2471   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2472   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2473   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2474   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2475   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2476   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2477   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2478   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2479   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2480   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2481   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2482   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2483   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2484   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2485   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2486   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2487   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2488   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2489   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2490   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2491   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2492   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2493   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2494   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2495   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2496   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2497   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2498   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2499   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2500   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2501 
2502   dev_dbg(hub_dev, "local power source is %s\n",
2503     (hubstatus & HUB_STATUS_LOCAL_POWER)
2504     ? "lost (inactive)" : "good");
2505 
2506   dev_dbg(hub_dev, "%sover-current condition exists\n",
2507     (hubstatus & HUB_STATUS_OVERCURRENT) ? "" : "no ");
2508 
2509   pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);
2510   maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
2511   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2512   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2513   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2514   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2515   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2516   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2517   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2518   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2519   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2520   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2521   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2522   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2523   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2524   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2525   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2526   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2527   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2528   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2529   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2530   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2531   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2532   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2533   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2534   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2535   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2536   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2537   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2538   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2539   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2540   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2541   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2542   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2543   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2544   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2545   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2546   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2547   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2548   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2549   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2550   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2551   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2552   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2553   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2554   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2555   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2556   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2557   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2558   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2559   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2560   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2561   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2562   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2563   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2564   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2565   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2566   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2567   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2568   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2569   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2570   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2571   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2572   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2573   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2574   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2575   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2576   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2577   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2578   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2579   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2580   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2581   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2582   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2583   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2584   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2585   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2586   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2587 
2588   if ((U32) maxp > sizeof(*hub->buffer))
2589     maxp = sizeof(*hub->buffer);
2590 
2591   hub->urb = usb_alloc_urb(0, GFP_KERNEL);
2592   if (!hub->urb) {
2593     message = "couldn't allocate interrupt urb";
2594     ret = -ENOMEM;
2595     goto fail;
2596   }
2597   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2598   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2599   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2600   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2601   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2602   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2603   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2604   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2605   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2606   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2607   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2608   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2609   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2610   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2611   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2612   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2613   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2614   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2615   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2616   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2617   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2618   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2619   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2620   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2621   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2622   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2623   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2624   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2625   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2626   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2627   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2628   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2629   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2630   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2631   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2632   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2633   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2634   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2635   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2636   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2637   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2638   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2639   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2640   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2641   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2642   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2643   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2644   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2645   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2646   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2647   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2648   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2649   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2650   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2651   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2652   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2653   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2654   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2655   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2656   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2657   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2658   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2659   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2660   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2661   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2662   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2663   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2664   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2665   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2666   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2667   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2668   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2669 
2670   usb_fill_int_urb(hub->urb, dev, pipe, *hub->buffer, maxp, hub_irq,
2671     hub, endpoint->bInterval);
2672   hub->urb->transfer_dma = hub->buffer_dma;
2673   hub->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
2674   ret = usb_submit_urb(hub->urb, GFP_KERNEL);
2675   if (ret) {
2676     message = "couldn't submit status urb";
2677     goto fail;
2678   }
2679 
2680   //wake_up(&khubd_wait);
2681 
2682   hub_power_on(hub);
2683 
2684   return 0;
2685   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2686   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2687   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2688   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2689   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2690   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2691   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2692   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2693   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2694   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2695   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2696   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2697   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2698   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2699   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2700   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2701   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2702   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2703   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2704   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2705   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2706   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2707   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2708   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2709   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2710   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2711   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2712   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2713   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2714   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2715   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2716   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2717   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2718   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2719   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2720   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2721   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2722   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2723   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2724   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2725   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2726   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2727   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2728   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2729   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2730   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2731   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2732   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2733   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2734   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2735   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2736   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2737   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2738   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2739   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2740   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2741   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2742   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2743   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2744   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2745   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2746   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2747   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2748   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2749   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2750   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2751 
2752 fail:
2753   dev_err (&hub->intf->dev, "config failed, %s (err %d)\n",
2754       message, ret);
2755   return ret;
2756 }
2757 
hub_disconnect(struct usb_interface * intf)2758 static void hub_disconnect(struct usb_interface *intf)
2759 {
2760   struct usb_hub *hub = (struct usb_hub*) usb_get_intfdata (intf);
2761   U32 flags;
2762 
2763   if (!hub)
2764     return;
2765   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2766   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2767   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2768   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2769   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2770   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2771   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2772   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2773   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2774   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2775   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2776   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2777   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2778   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2779   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2780   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2781   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2782   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2783   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2784   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2785   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2786   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2787   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2788   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2789   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2790   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2791   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2792   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2793   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2794   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2795   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2796   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2797   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2798   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2799   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2800   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2801   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2802   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2803   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2804   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2805   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2806   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2807   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2808   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2809   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2810   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2811   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2812   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2813   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2814   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2815   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2816   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2817   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2818   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2819   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2820   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2821   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2822   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2823   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2824   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2825   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2826   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2827   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2828   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2829   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2830   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2831   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2832 
2833   usb_set_intfdata (intf, NULL);
2834   spin_lock_irqsave(&hub_event_lock, flags);
2835 
2836   /* Delete it and then reset it */
2837   list_del(&hub->event_list);
2838   INIT_LIST_HEAD(&hub->event_list);
2839   list_del(&hub->hub_list);
2840   INIT_LIST_HEAD(&hub->hub_list);
2841 
2842   spin_unlock_irqrestore(&hub_event_lock, flags);
2843   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2844   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2845   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2846   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2847   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2848   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2849   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2850   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2851   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2852   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2853   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2854   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2855   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2856   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2857   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2858   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2859   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2860   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2861   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2862   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2863   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2864   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2865   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2866   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2867   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2868   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2869   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2870   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2871   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2872   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2873   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2874   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2875   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2876   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2877   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2878   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2879   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2880   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2881   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2882   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2883   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2884   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2885   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2886   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2887   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2888   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2889   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2890   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2891   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2892   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2893   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2894   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2895   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2896   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2897   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2898   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2899   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2900   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2901   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2902   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2903   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2904   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2905   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2906   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2907   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2908   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2909   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2910   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2911   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2912   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2913 
2914   down(&hub->khubd_sem);
2915   up(&hub->khubd_sem);
2916 
2917   //if (hub->tt.hub)
2918   //  flush_scheduled_work ();
2919 
2920   if (hub->urb) {
2921     dbg("hub_disconnect: unlink urb%s","");
2922     usb_unlink_urb(hub->urb);
2923     usb_free_urb(hub->urb);
2924     hub->urb = NULL;
2925   }
2926 
2927 #if 0
2928   if (hub.descriptor) {
2929     kfree(hub->descriptor);
2930     hub->descriptor = NULL;
2931   }
2932 
2933   if (hub->status) {
2934     kfree(hub->status);
2935     hub->status = NULL;
2936   }
2937 #endif
2938   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2939   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2940   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2941   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2942   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2943   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2944   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2945   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2946   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2947   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2948   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2949   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2950   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2951   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2952   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2953   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2954   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2955   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2956   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2957   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2958   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2959   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2960   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2961   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2962   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2963   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2964   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2965   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2966   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2967   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2968   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2969   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2970   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2971   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2972   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2973   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2974   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2975   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2976   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2977   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2978   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2979   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2980   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2981   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2982   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2983   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2984   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2985   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2986   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2987   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2988   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2989   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2990   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2991   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2992   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2993   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2994   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2995   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2996   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2997   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2998   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
2999   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3000   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3001   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3002   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3003   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3004   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3005   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3006   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3007   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3008   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3009   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3010   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3011   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3012 
3013   if (hub->buffer) {
3014     usb_buffer_free(interface_to_usbdev(intf),
3015         sizeof(*hub->buffer), hub->buffer,
3016         hub->buffer_dma);
3017     hub->buffer = NULL;
3018   }
3019 
3020   kfree(hub);
3021 }
3022 
hub_probe(struct usb_interface * intf,const struct usb_device_id * id)3023 static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id)
3024 {
3025   struct usb_host_interface *desc;
3026   struct usb_endpoint_descriptor *endpoint;
3027   struct usb_device *dev;
3028   struct usb_hub *hub;
3029   U32 flags;
3030   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3031   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3032   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3033   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3034   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3035   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3036   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3037   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3038   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3039   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3040   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3041   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3042   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3043   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3044   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3045   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3046   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3047   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3048   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3049   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3050   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3051   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3052   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3053   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3054   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3055   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3056   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3057   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3058   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3059   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3060   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3061   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3062   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3063   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3064   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3065   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3066   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3067   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3068   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3069   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3070   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3071   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3072   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3073   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3074   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3075   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3076   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3077   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3078   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3079   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3080   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3081   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3082   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3083   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3084   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3085   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3086   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3087   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3088   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3089   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3090   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3091   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3092   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3093   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3094   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3095   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3096   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3097   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3098   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3099 
3100   desc = intf->altsetting + intf->act_altsetting;
3101   dev = interface_to_usbdev(intf);
3102 
3103   if ((desc->desc.bInterfaceSubClass != 0) &&
3104       (desc->desc.bInterfaceSubClass != 1)) {
3105 descriptor_error:
3106     dev_err (&intf->dev, "bad descriptor, ignoring hub%s","\n");
3107     return -EIO;
3108   }
3109 
3110   if (desc->desc.bNumEndpoints != 1) {
3111     goto descriptor_error;
3112   }
3113   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3114   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3115   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3116   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3117   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3118   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3119   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3120   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3121   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3122   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3123   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3124   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3125   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3126   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3127   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3128   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3129   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3130   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3131   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3132   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3133   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3134   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3135   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3136   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3137   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3138   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3139   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3140   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3141   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3142   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3143   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3144   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3145   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3146   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3147   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3148   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3149   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3150   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3151   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3152   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3153   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3154   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3155   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3156   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3157   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3158   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3159   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3160   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3161   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3162   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3163   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3164   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3165   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3166   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3167   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3168   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3169   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3170   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3171   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3172   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3173   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3174   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3175 
3176   endpoint = &desc->endpoint[0].desc;
3177 
3178   if (!(endpoint->bEndpointAddress & USB_DIR_IN)) {
3179     goto descriptor_error;
3180   }
3181 
3182   if ((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
3183       != USB_ENDPOINT_XFER_INT) {
3184     goto descriptor_error;
3185     return -EIO;
3186   }
3187 
3188   dev_info (hubdev (dev), "USB hub found%s","\n");
3189   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3190   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3191   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3192   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3193   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3194   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3195   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3196   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3197   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3198   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3199   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3200   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3201   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3202   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3203   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3204   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3205   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3206   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3207   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3208   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3209   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3210   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3211   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3212   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3213   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3214   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3215   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3216   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3217   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3218   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3219   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3220   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3221   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3222   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3223   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3224   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3225   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3226   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3227   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3228   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3229   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3230   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3231   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3232   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3233   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3234   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3235   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3236   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3237   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3238   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3239   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3240   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3241   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3242   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3243   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3244   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3245   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3246   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3247   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3248   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3249   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3250 
3251   hub = (struct usb_hub*) kmalloc(sizeof(*hub), GFP_KERNEL);
3252   if (!hub) {
3253     usb_err("couldn't kmalloc hub struct%s","");
3254     return -ENOMEM;
3255   }
3256 
3257   memset(hub, 0, sizeof(*hub));
3258 
3259   INIT_LIST_HEAD(&hub->event_list);
3260   hub->intf = intf;
3261   //init_MUTEX(&hub->khubd_sem);
3262 
3263   spin_lock_irqsave(&hub_event_lock, flags);
3264   INIT_LIST_HEAD(&hub->hub_list);
3265   list_add(&hub->hub_list, &hub_list);
3266   spin_unlock_irqrestore(&hub_event_lock, flags);
3267 
3268   usb_set_intfdata (intf, hub);
3269 
3270   if (hub_configure(hub, endpoint) >= 0)
3271     return 0;
3272 
3273   hub_disconnect (intf);
3274   return -ENODEV;
3275 }
3276 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3277 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3278 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3279 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3280 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3281 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3282 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3283 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3284 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3285 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3286 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3287 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3288 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3289 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3290 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3291 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3292 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3293 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3294 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3295 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3296 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3297 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3298 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3299 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3300 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3301 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3302 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3303 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3304 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3305 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3306 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3307 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3308 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3309 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3310 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3311 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3312 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3313 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3314 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3315 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3316 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3317 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3318 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3319 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3320 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3321 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3322 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3323 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3324 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3325 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3326 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3327 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3328 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3329 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3330 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3331 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3332 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3333 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3334 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3335 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3336 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3337 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3338 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3339 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3340 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3341 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3342 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3343 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3344 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3345 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3346 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3347 
3348 static int
hub_ioctl(struct usb_interface * intf,U32 ucode,void * user_data)3349 hub_ioctl(struct usb_interface *intf, U32 ucode, void *user_data)
3350 {
3351   //struct usb_device *hub = (struct usb_device*) interface_to_usbdev (intf);
3352 
3353   switch (ucode) {
3354   // Unsupport ioctl function
3355 #if 0
3356   case USBDEVFS_HUB_PORTINFO: {
3357     struct usbdevfs_hub_portinfo *info = user_data;
3358     U32 flags;
3359     int i;
3360 
3361     spin_lock_irqsave(&hub_event_lock, flags);
3362     if (hub->devnum <= 0)
3363       info->nports = 0;
3364 
3365 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3366 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3367 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3368 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3369 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3370 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3371 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3372 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3373 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3374 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3375 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3376 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3377 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3378 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3379 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3380 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3381 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3382 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3383 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3384 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3385 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3386 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3387 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3388 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3389 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3390 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3391 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3392 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3393 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3394 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3395 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3396 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3397 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3398 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3399 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3400 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3401 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3402 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3403 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3404 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3405 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3406 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3407 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3408 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3409 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3410 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3411 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3412 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3413 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3414 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3415 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3416 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3417 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3418 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3419 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3420 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3421 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3422 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3423 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3424 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3425 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3426 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3427 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3428 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3429 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3430 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3431 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3432 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3433 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3434 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3435 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3436 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3437     else {
3438       info->nports = hub->maxchild;
3439       for (i = 0; i < info->nports; i++) {
3440         if (hub->children[i] == NULL)
3441           info->port[i] = 0;
3442         else
3443           info->port[i] =
3444             hub->children[i]->devnum;
3445       }
3446     }
3447     spin_unlock_irqrestore(&hub_event_lock, flags);
3448 
3449     return info->nports + 1;
3450     }
3451 #endif
3452   default:
3453     return -ENOSYS;
3454   }
3455 }
3456 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3457 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3458 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3459 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3460 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3461 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3462 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3463 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3464 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3465 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3466 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3467 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3468 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3469 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3470 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3471 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3472 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3473 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3474 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3475 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3476 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3477 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3478 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3479 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3480 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3481 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3482 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3483 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3484 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3485 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3486 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3487 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3488 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3489 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3490 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3491 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3492 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3493 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3494 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3495 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3496 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3497 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3498 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3499 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3500 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3501 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3502 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3503 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3504 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3505 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3506 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3507 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3508 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3509 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3510 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3511 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3512 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3513 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3514 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3515 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3516 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3517 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3518 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3519 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3520 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3521 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3522 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3523 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3524 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3525 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3526 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3527 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3528 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3529 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3530 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3531 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3532 
hub_reset(struct usb_hub * hub)3533 int hub_reset(struct usb_hub *hub)
3534 {
3535   struct usb_device *dev = interface_to_usbdev(hub->intf);
3536   int i;
3537   printk("\nhub reset\n");
3538   for (i = 0; i < hub->descriptor.bNbrPorts; i++) {
3539     if (dev->children[i])
3540       usb_disconnect(&dev->children[i]);
3541   }
3542   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3543   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3544   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3545   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3546   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3547   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3548   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3549   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3550   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3551   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3552   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3553   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3554   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3555   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3556   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3557   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3558   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3559   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3560   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3561   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3562   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3563   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3564   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3565   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3566   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3567   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3568   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3569   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3570   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3571   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3572   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3573   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3574   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3575   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3576   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3577   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3578   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3579   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3580   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3581   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3582   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3583   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3584   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3585   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3586   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3587   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3588   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3589   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3590   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3591   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3592   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3593   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3594   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3595   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3596   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3597   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3598   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3599   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3600   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3601 
3602   if (hub->urb)
3603   {
3604     usb_unlink_urb(hub->urb);
3605     usb_msg("hub_reset: unlink urb%s","");
3606   }
3607   else
3608     return -1;
3609 
3610   if (usb_reset_device(dev))
3611     return -1;
3612 
3613   hub->urb->dev = dev;
3614   if (usb_submit_urb(hub->urb, GFP_KERNEL))
3615     return -1;
3616 
3617   hub_power_on(hub);
3618 
3619   return 0;
3620 }
3621 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3622 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3623 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3624 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3625 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3626 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3627 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3628 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3629 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3630 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3631 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3632 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3633 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3634 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3635 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3636 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3637 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3638 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3639 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3640 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3641 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3642 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3643 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3644 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3645 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3646 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3647 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3648 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3649 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3650 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3651 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3652 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3653 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3654 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3655 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3656 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3657 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3658 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3659 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3660 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3661 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3662 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3663 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3664 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3665 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3666 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3667 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3668 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3669 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3670 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3671 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3672 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3673 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3674 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3675 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3676 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3677 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3678 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3679 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3680 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3681 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3682 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3683 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3684 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3685 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3686 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3687 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3688 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3689 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3690 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3691 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3692 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3693 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3694 
hub_start_disconnect(struct usb_device * dev)3695 void hub_start_disconnect(struct usb_device *dev)
3696 {
3697   struct usb_device *parent = dev->parent;
3698   int i;
3699 
3700   if (parent) {
3701     for (i = 0; i < parent->maxchild; i++) {
3702       if (parent->children[i] == dev) {
3703         usb_disconnect(&parent->children[i]);
3704         return;
3705       }
3706     }
3707   }
3708 
3709   usb_err("cannot disconnect hub %s", dev->devpath);
3710 }
3711 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3712 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3713 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3714 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3715 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3716 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3717 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3718 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3719 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3720 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3721 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3722 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3723 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3724 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3725 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3726 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3727 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3728 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3729 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3730 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3731 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3732 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3733 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3734 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3735 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3736 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3737 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3738 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3739 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3740 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3741 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3742 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3743 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3744 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3745 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3746 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3747 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3748 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3749 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3750 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3751 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3752 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3753 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3754 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3755 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3756 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3757 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3758 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3759 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3760 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3761 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3762 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3763 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3764 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3765 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3766 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3767 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3768 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3769 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3770 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3771 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3772 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3773 
hub_port_status(struct usb_device * dev,int port,U16 * status,U16 * change)3774 int hub_port_status(struct usb_device *dev, int port,
3775              U16 *status, U16 *change)
3776 {
3777   struct usb_hub *hub = (struct usb_hub*) usb_get_intfdata(dev->actconfig->interface[0]);
3778   int ret;
3779 
3780   ret = get_port_status(dev, port + 1, &hub->status.port);
3781   if (ret < 0) {
3782     dev_err (hubdev (dev),
3783       "%s failed (err = %d)\n", __FUNCTION__, ret);
3784   }
3785   else {
3786     *status = LE16ToCPU(hub->status.port.wPortStatus);
3787     *change = LE16ToCPU(hub->status.port.wPortChange);
3788     ret = 0;
3789   }
3790   return ret;
3791 }
3792 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3793 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3794 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3795 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3796 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3797 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3798 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3799 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3800 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3801 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3802 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3803 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3804 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3805 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3806 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3807 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3808 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3809 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3810 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3811 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3812 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3813 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3814 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3815 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3816 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3817 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3818 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3819 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3820 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3821 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3822 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3823 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3824 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3825 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3826 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3827 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3828 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3829 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3830 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3831 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3832 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3833 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3834 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3835 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3836 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3837 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3838 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3839 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3840 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3841 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3842 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3843 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3844 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3845 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3846 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3847 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3848 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3849 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3850 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3851 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3852 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3853 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3854 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3855 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3856 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3857 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3858 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3859 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3860 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3861 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3862 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3863 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3864 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3865 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3866 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3867 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3868 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3869 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3870 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3871 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3872 
3873 #if 0 // move to drvHub.h
3874 #define HUB_RESET_TRIES    5
3875 #define HUB_PROBE_TRIES    2
3876 #define HUB_ROOT_RESET_TIME  50  /* times are in msec */
3877 #define HUB_SHORT_RESET_TIME  10
3878 #define HUB_LONG_RESET_TIME  200
3879 #define HUB_RESET_TIMEOUT  500
3880 #endif
3881 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3882 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3883 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3884 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3885 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3886 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3887 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3888 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3889 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3890 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3891 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3892 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3893 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3894 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3895 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3896 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3897 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3898 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3899 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3900 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3901 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3902 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3903 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3904 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3905 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3906 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3907 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3908 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3909 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3910 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3911 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3912 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3913 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3914 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3915 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3916 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3917 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3918 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3919 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3920 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3921 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3922 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3923 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3924 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3925 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3926 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3927 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3928 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3929 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3930 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3931 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3932 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3933 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3934 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3935 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3936 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3937 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3938 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3939 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3940 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3941 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3942 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3943 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3944 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3945 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3946 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3947 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3948 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3949 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3950 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3951 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3952 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3953 
hub_port_wait_reset(struct usb_device * hub,int port,struct usb_device * dev,U32 delay)3954 static int hub_port_wait_reset(struct usb_device *hub, int port,
3955         struct usb_device *dev, U32 delay)
3956 {
3957   int delay_time, ret;
3958   U16 portstatus;
3959   U16 portchange;
3960   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3961   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3962   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3963   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3964   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3965   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3966   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3967   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3968   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3969   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3970   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3971   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3972   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3973   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3974   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3975   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3976   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3977   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3978   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3979   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3980   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3981   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3982   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3983   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3984   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3985   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3986   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3987   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3988   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3989   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3990   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3991   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3992   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3993   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3994   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3995   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3996   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3997   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3998   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
3999   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4000   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4001   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4002   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4003   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4004   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4005   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4006   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4007   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4008   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4009   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4010   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4011   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4012   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4013   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4014   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4015   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4016   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4017   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4018   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4019   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4020   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4021   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4022   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4023   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4024   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4025   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4026   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4027   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4028   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4029   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4030   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4031   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4032   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4033   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4034   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4035   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4036 
4037   for (delay_time = 0;
4038       delay_time < HUB_RESET_TIMEOUT;
4039       delay_time += delay) {
4040     wait_ms(delay);
4041 
4042     ret = hub_port_status(hub, port, &portstatus, &portchange);
4043     if (ret < 0) {
4044       return -1;
4045     }
4046 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4047 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4048 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4049 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4050 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4051 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4052 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4053 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4054 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4055 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4056 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4057 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4058 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4059 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4060 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4061 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4062 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4063 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4064 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4065 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4066 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4067 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4068 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4069 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4070 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4071 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4072 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4073 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4074 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4075 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4076 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4077 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4078 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4079 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4080 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4081 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4082 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4083 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4084 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4085 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4086 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4087 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4088 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4089 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4090 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4091 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4092 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4093 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4094 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4095 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4096 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4097 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4098 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4099 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4100 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4101 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4102 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4103 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4104 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4105 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4106 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4107 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4108 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4109 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4110 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4111 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4112 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4113 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4114 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4115 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4116 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4117 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4118 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4119 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4120 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4121 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4122 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4123 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4124 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4125 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4126 
4127     if (!(portstatus & USB_PORT_STAT_CONNECTION))
4128       return 1;
4129 
4130     if ((portchange & USB_PORT_STAT_C_CONNECTION))
4131         //return -1;
4132         return 1; // disconnect
4133 
4134     if (!(portstatus & USB_PORT_STAT_RESET) &&
4135         (portstatus & USB_PORT_STAT_ENABLE)) {
4136 
4137       if (portstatus & USB_PORT_STAT_HIGH_SPEED)
4138         dev->speed = USB_SPEED_HIGH;
4139       else if (portstatus & USB_PORT_STAT_LOW_SPEED)
4140         dev->speed = USB_SPEED_LOW;
4141       else
4142         dev->speed = USB_SPEED_FULL;
4143       dev_dbg(hubdev(hub),"Device Speed is %s\n",portspeed (portstatus));
4144       diag_printf("hub_port_wait_reset:: Device Speed is %s\n", portspeed(portstatus));
4145       //printk("Device Speed is %s\n",portspeed (portstatus));
4146       return 0;
4147     }
4148 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4149 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4150 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4151 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4152 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4153 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4154 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4155 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4156 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4157 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4158 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4159 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4160 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4161 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4162 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4163 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4164 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4165 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4166 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4167 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4168 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4169 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4170 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4171 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4172 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4173 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4174 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4175 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4176 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4177 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4178 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4179 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4180 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4181 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4182 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4183 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4184 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4185 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4186 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4187 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4188 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4189 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4190 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4191 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4192 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4193 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4194 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4195 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4196 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4197 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4198 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4199 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4200 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4201 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4202 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4203 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4204 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4205 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4206 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4207 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4208 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4209 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4210 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4211 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4212 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4213 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4214 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4215 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4216 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4217 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4218 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4219 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4220 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4221 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4222 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4223 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4224 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4225 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4226 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4227 
4228     if (delay_time >= 2 * HUB_SHORT_RESET_TIME)
4229       delay = HUB_LONG_RESET_TIME;
4230 
4231     dev_dbg (hubdev (hub),
4232       "port %d not reset yet, waiting %dms\n",
4233       port + 1, delay);
4234   }
4235 
4236   return -1;
4237 }
4238 
4239 /* return: -1 on error, 0 on success, 1 on disconnect.  */
4240 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4241 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4242 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4243 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4244 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4245 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4246 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4247 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4248 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4249 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4250 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4251 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4252 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4253 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4254 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4255 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4256 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4257 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4258 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4259 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4260 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4261 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4262 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4263 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4264 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4265 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4266 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4267 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4268 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4269 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4270 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4271 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4272 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4273 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4274 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4275 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4276 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4277 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4278 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4279 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4280 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4281 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4282 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4283 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4284 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4285 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4286 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4287 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4288 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4289 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4290 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4291 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4292 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4293 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4294 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4295 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4296 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4297 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4298 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4299 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4300 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4301 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4302 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4303 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4304 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4305 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4306 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4307 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4308 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4309 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4310 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4311 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4312 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4313 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4314 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4315 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4316 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4317 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4318 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4319 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4320 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4321 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4322 
hub_port_reset(struct usb_device * hub,int port,struct usb_device * dev,U32 delay)4323 static int hub_port_reset(struct usb_device *hub, int port,
4324         struct usb_device *dev, U32 delay)
4325 {
4326   int i, status;
4327 
4328   for (i = 0; i < HUB_RESET_TRIES; i++) {
4329     set_port_feature(hub, port + 1, USB_PORT_FEAT_RESET);
4330 
4331     status = hub_port_wait_reset(hub, port, dev, delay);
4332     //diag_printf("<hub_port_reset> loop %d, status %d\n", i, status);
4333     if (status != -1) {
4334       clear_port_feature(hub,
4335         port + 1, USB_PORT_FEAT_C_RESET);
4336       dev->state = status
4337           ? USB_STATE_NOTATTACHED
4338           : USB_STATE_DEFAULT;
4339       return status;
4340     }
4341 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4342 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4343 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4344 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4345 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4346 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4347 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4348 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4349 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4350 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4351 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4352 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4353 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4354 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4355 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4356 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4357 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4358 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4359 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4360 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4361 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4362 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4363 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4364 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4365 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4366 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4367 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4368 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4369 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4370 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4371 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4372 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4373 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4374 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4375 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4376 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4377 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4378 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4379 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4380 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4381 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4382 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4383 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4384 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4385 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4386 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4387 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4388 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4389 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4390 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4391 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4392 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4393 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4394 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4395 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4396 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4397 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4398 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4399 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4400 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4401 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4402 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4403 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4404 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4405 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4406 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4407 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4408 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4409 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4410 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4411 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4412 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4413 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4414 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4415 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4416 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4417 
4418     dev_dbg (hubdev (hub),
4419       "port %d not enabled, trying reset again...\n",
4420       port + 1);
4421     delay = HUB_LONG_RESET_TIME;
4422   }
4423 
4424   dev_err (hubdev (hub),
4425     "Cannot enable port %i.  Maybe the USB cable is bad?\n",
4426     port + 1);
4427 
4428   return -1;
4429 }
4430 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4431 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4432 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4433 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4434 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4435 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4436 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4437 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4438 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4439 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4440 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4441 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4442 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4443 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4444 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4445 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4446 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4447 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4448 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4449 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4450 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4451 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4452 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4453 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4454 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4455 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4456 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4457 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4458 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4459 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4460 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4461 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4462 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4463 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4464 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4465 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4466 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4467 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4468 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4469 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4470 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4471 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4472 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4473 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4474 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4475 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4476 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4477 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4478 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4479 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4480 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4481 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4482 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4483 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4484 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4485 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4486 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4487 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4488 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4489 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4490 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4491 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4492 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4493 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4494 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4495 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4496 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4497 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4498 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4499 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4500 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4501 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4502 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4503 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4504 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4505 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4506 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4507 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4508 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4509 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4510 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4511 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4512 
hub_port_disable(struct usb_device * hub,int port)4513 int hub_port_disable(struct usb_device *hub, int port)
4514 {
4515   int ret;
4516 
4517   ret = clear_port_feature(hub, port + 1, USB_PORT_FEAT_ENABLE);
4518   if (ret) {
4519     dev_err(hubdev(hub), "cannot disable port %d (err = %d)\n",
4520       port + 1, ret);
4521   }
4522 
4523   return ret;
4524 }
4525 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4526 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4527 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4528 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4529 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4530 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4531 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4532 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4533 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4534 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4535 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4536 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4537 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4538 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4539 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4540 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4541 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4542 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4543 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4544 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4545 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4546 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4547 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4548 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4549 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4550 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4551 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4552 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4553 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4554 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4555 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4556 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4557 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4558 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4559 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4560 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4561 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4562 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4563 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4564 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4565 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4566 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4567 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4568 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4569 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4570 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4571 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4572 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4573 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4574 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4575 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4576 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4577 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4578 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4579 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4580 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4581 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4582 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4583 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4584 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4585 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4586 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4587 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4588 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4589 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4590 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4591 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4592 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4593 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4594 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4595 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4596 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4597 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4598 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4599 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4600 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4601 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4602 
4603 
4604 #define HUB_DEBOUNCE_TIMEOUT  1500 //400
4605 //#define HUB_DEBOUNCE_STEP      25
4606 //#define HUB_DEBOUNCE_STABLE   4 // # of counts
4607 
hub_port_debounce(struct usb_device * hub,int port)4608 static int hub_port_debounce(struct usb_device *hub, int port)
4609 {
4610   int ret;
4611   int delay_time, stable_count;
4612   U16 portchange, portstatus;
4613   U32 connection;
4614   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4615   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4616   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4617   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4618   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4619   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4620   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4621   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4622   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4623   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4624   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4625   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4626   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4627   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4628   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4629   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4630   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4631   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4632   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4633   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4634   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4635   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4636   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4637   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4638   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4639   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4640   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4641   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4642   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4643   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4644   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4645   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4646   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4647   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4648   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4649   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4650   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4651   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4652   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4653   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4654   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4655   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4656   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4657   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4658   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4659   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4660   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4661   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4662   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4663   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4664   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4665   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4666   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4667   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4668   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4669   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4670   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4671   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4672   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4673   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4674   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4675   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4676   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4677   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4678   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4679   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4680   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4681   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4682   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4683   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4684 
4685   connection = 0;
4686   stable_count = 0;
4687   for (delay_time = 0; delay_time < HUB_DEBOUNCE_TIMEOUT; delay_time += HUB_DEBOUNCE_STEP) {
4688     wait_ms(HUB_DEBOUNCE_STEP);
4689 
4690     ret = hub_port_status(hub, port, &portstatus, &portchange);
4691     if (ret < 0)
4692       return -1;
4693 
4694     if ((U16) (portstatus & USB_PORT_STAT_CONNECTION) == connection) {
4695       if (connection) {
4696         if (++stable_count == HUB_DEBOUNCE_STABLE)
4697           break;
4698       }
4699     } else {
4700       stable_count = 0;
4701     }
4702     connection = portstatus & USB_PORT_STAT_CONNECTION;
4703 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4704 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4705 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4706 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4707 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4708 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4709 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4710 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4711 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4712 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4713 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4714 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4715 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4716 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4717 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4718 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4719 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4720 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4721 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4722 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4723 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4724 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4725 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4726 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4727 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4728 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4729 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4730 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4731 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4732 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4733 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4734 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4735 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4736 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4737 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4738 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4739 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4740 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4741 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4742 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4743 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4744 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4745 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4746 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4747 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4748 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4749 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4750 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4751 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4752 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4753 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4754 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4755 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4756 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4757 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4758 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4759 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4760 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4761 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4762 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4763 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4764 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4765 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4766 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4767 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4768 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4769 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4770 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4771 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4772 
4773     if ((portchange & USB_PORT_STAT_C_CONNECTION)) {
4774       clear_port_feature(hub, port+1, USB_PORT_FEAT_C_CONNECTION);
4775     }
4776   }
4777 
4778   dev_info (hubdev (hub),
4779     "debounce: port %d: delay %dms stable %d status 0x%x\n",
4780     port + 1, delay_time, stable_count, portstatus);
4781 
4782   return ((portstatus&USB_PORT_STAT_CONNECTION)) ? 0 : 1;
4783 }
4784 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4785 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4786 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4787 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4788 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4789 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4790 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4791 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4792 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4793 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4794 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4795 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4796 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4797 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4798 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4799 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4800 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4801 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4802 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4803 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4804 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4805 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4806 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4807 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4808 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4809 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4810 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4811 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4812 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4813 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4814 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4815 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4816 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4817 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4818 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4819 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4820 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4821 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4822 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4823 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4824 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4825 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4826 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4827 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4828 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4829 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4830 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4831 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4832 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4833 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4834 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4835 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4836 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4837 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4838 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4839 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4840 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4841 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4842 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4843 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4844 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4845 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4846 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4847 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4848 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4849 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4850 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4851 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4852 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4853 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4854 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4855 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4856 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4857 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4858 
4859 extern  void ehci_endpoint_disable (struct usb_hcd *hcd, struct hcd_dev *dev, int ep);
hub_port_connect_change(struct usb_hub * hubstate,int port,U16 portstatus,U16 portchange)4860 void hub_port_connect_change(struct usb_hub *hubstate, int port,
4861           U16 portstatus, U16 portchange)
4862 {
4863   struct usb_device *hub = interface_to_usbdev(hubstate->intf);
4864   struct usb_device *dev;
4865   struct hcd_dev    *phcd_dev;
4866   struct usb_hcd    *hcd = (struct usb_hcd*) hub->bus->hcpriv;
4867   U32 delay = HUB_SHORT_RESET_TIME;
4868   int i;
4869   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4870   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4871   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4872   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4873   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4874   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4875   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4876   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4877   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4878   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4879   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4880   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4881   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4882   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4883   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4884   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4885   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4886   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4887   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4888   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4889   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4890   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4891   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4892   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4893   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4894   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4895   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4896   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4897   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4898   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4899   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4900   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4901   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4902   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4903   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4904   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4905   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4906   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4907   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4908   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4909   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4910   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4911   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4912   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4913   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4914   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4915   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4916   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4917   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4918   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4919   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4920   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4921   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4922   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4923   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4924   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4925   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4926   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4927   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4928   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4929   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4930   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4931   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4932   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4933   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4934   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4935   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4936   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4937   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4938   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4939   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4940   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4941 
4942   diag_printf("hub_port_connect_change ===>\n");
4943   #ifndef CONFIG_FARADAY_FOTG200
4944   diag_printf (
4945     "port %d, status %x, change %x, %s\n",
4946     port + 1, portstatus, portchange, portspeed (portstatus));
4947   #else
4948   dev_dbg (&hubstate->intf->dev,
4949     "port %d, status %x, change %x\n",
4950     port + 1, portstatus, portchange);
4951   #endif
4952   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4953   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4954   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4955   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4956   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4957   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4958   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4959   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4960   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4961   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4962   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4963   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4964   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4965   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4966   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4967   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4968   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4969   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4970   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4971   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4972   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4973   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4974   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4975   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4976   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4977   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4978   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4979   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4980   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4981   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4982   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4983   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4984   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4985   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4986   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4987   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4988   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4989   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4990   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4991   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4992   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4993   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4994   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4995   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4996   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4997   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4998   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
4999   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5000   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5001   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5002   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5003   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5004   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5005   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5006   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5007   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5008   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5009   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5010   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5011   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5012   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5013   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5014   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5015   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5016   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5017   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5018 
5019   clear_port_feature(hub, port + 1, USB_PORT_FEAT_C_CONNECTION);
5020 
5021   if (hub->children[port])
5022     usb_disconnect(&hub->children[port]);
5023 
5024   if (!(portstatus & USB_PORT_STAT_CONNECTION)) {
5025 
5026 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5027 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5028 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5029 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5030 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5031 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5032 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5033 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5034 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5035 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5036 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5037 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5038 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5039 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5040 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5041 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5042 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5043 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5044 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5045 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5046 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5047 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5048 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5049 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5050 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5051 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5052 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5053 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5054 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5055 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5056 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5057 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5058 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5059 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5060 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5061 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5062 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5063 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5064 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5065 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5066 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5067 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5068 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5069 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5070 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5071 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5072 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5073 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5074 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5075 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5076 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5077 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5078 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5079 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5080 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5081 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5082 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5083 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5084 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5085 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5086 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5087 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5088 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5089 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5090 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5091 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5092 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5093 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5094 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5095 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5096 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5097 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5098 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5099 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5100 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5101 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5102 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5103 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5104 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5105 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5106 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5107 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5108 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5109 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5110 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5111 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5112 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5113 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5114 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5115 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5116 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5117 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5118 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5119 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5120 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5121 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5122 
5123     if (portstatus & USB_PORT_STAT_ENABLE)
5124       hub_port_disable(hub, port);
5125     return;
5126   }
5127 
5128   if (hub_port_debounce(hub, port)) {
5129     dev_err (&hubstate->intf->dev,
5130       "connect-debounce failed, port %d disabled\n",
5131       port+1);
5132     hub_port_disable(hub, port);
5133     return;
5134   }
5135   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5136   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5137   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5138   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5139   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5140   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5141   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5142   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5143   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5144   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5145   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5146   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5147   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5148   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5149   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5150   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5151   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5152   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5153   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5154   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5155   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5156   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5157   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5158   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5159   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5160   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5161   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5162   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5163   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5164   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5165   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5166   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5167   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5168   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5169   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5170   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5171   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5172   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5173   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5174   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5175   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5176   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5177   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5178   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5179   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5180   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5181   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5182   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5183   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5184   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5185   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5186   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5187   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5188   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5189   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5190   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5191   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5192   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5193   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5194   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5195   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5196   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5197   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5198   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5199   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5200   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5201   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5202   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5203   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5204   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5205   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5206   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5207   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5208   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5209   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5210   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5211   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5212   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5213   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5214   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5215   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5216   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5217   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5218   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5219   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5220   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5221   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5222   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5223   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5224   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5225   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5226   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5227   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5228   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5229   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5230   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5231 
5232 
5233 
5234   if (!hub->parent)
5235     delay = HUB_ROOT_RESET_TIME;
5236 
5237   if (portstatus & USB_PORT_STAT_LOW_SPEED)
5238     delay = HUB_LONG_RESET_TIME;
5239 
5240   down(&usb_address0_sem);
5241   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5242   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5243   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5244   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5245   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5246   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5247   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5248   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5249   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5250   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5251   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5252   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5253   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5254   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5255   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5256   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5257   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5258   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5259   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5260   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5261   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5262   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5263   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5264   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5265   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5266   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5267   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5268   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5269   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5270   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5271   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5272   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5273   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5274   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5275   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5276   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5277   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5278   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5279   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5280   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5281   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5282   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5283   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5284   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5285   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5286   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5287   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5288   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5289   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5290   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5291   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5292   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5293   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5294   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5295   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5296   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5297   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5298   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5299   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5300   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5301   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5302   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5303   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5304   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5305   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5306   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5307   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5308   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5309   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5310   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5311   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5312   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5313   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5314   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5315   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5316   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5317   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5318   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5319   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5320   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5321   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5322   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5323   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5324   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5325   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5326   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5327   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5328   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5329   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5330   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5331   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5332   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5333   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5334   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5335   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5336   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5337 
5338   for (i = 0; i < HUB_PROBE_TRIES; i++) {
5339     struct usb_device *pdev;
5340     int  len;
5341 
5342     dev = usb_alloc_dev(hub, hub->bus);
5343     if (!dev) {
5344       dev_err (&hubstate->intf->dev,
5345         "couldn't allocate usb_device%s","\n");
5346       break;
5347     }
5348 
5349     hub->children[port] = dev;
5350     dev->state = USB_STATE_POWERED;
5351 
5352     //diag_printf("hcd->product_desc: (%s)\n", hcd->product_desc);
5353     if ( (hub->parent == NULL) && (hcd->isBadDevice) )
5354     {
5355         struct ehci_hcd *ehci = hcd_to_ehci (hcd);
5356         U32 temp;
5357 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5358 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5359 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5360 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5361 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5362 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5363 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5364 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5365 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5366 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5367 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5368 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5369 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5370 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5371 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5372 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5373 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5374 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5375 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5376 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5377 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5378 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5379 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5380 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5381 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5382 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5383 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5384 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5385 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5386 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5387 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5388 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5389 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5390 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5391 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5392 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5393 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5394 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5395 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5396 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5397 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5398 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5399 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5400 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5401 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5402 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5403 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5404 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5405 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5406 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5407 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5408 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5409 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5410 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5411 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5412 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5413 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5414 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5415 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5416 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5417 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5418 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5419 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5420 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5421 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5422 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5423 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5424 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5425 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5426 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5427 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5428 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5429 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5430 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5431 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5432 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5433 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5434 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5435 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5436 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5437 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5438 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5439 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5440 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5441 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5442 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5443 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5444 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5445 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5446 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5447 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5448 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5449 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5450 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5451 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5452 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5453 
5454         if (hcd->badDeviceCnt == 3)
5455         {
5456             temp = ehci_readl((U32)&ehci->regs->bus_control);
5457             temp |= 0x80; //force enter FSmode
5458             ehci_writel(temp, (U32)&ehci->regs->bus_control);
5459             diag_printf("force enter FSmode\n");
5460         }
5461         hcd->isRootHubPortReset = TRUE;
5462         hcd->isBadDevice = FALSE;
5463     }
5464 
5465     if (hcd->isRootHubPortReset)
5466     {
5467         hcd->isRootHubPortReset = FALSE;
5468     }
5469 
5470     if (hub_port_reset(hub, port, dev, delay)) {
5471       usb_put_dev(dev);
5472       if (i == 0)
5473         continue;
5474       else
5475         break;
5476     }
5477 
5478     if (hub->parent == NULL)
5479     {
5480 
5481 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5482 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5483 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5484 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5485 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5486 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5487 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5488 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5489 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5490 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5491 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5492 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5493 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5494 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5495 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5496 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5497 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5498 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5499 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5500 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5501 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5502 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5503 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5504 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5505 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5506 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5507 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5508 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5509 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5510 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5511 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5512 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5513 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5514 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5515 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5516 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5517 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5518 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5519 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5520 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5521 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5522 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5523 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5524 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5525 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5526 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5527 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5528 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5529 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5530 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5531 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5532 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5533 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5534 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5535 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5536 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5537 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5538 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5539 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5540 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5541 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5542 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5543 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5544 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5545 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5546 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5547 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5548 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5549 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5550 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5551 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5552 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5553 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5554 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5555 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5556 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5557 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5558 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5559 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5560 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5561 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5562 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5563 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5564 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5565 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5566 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5567 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5568 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5569 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5570 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5571 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5572 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5573 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5574 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5575 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5576 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5577         struct ehci_hcd *ehci = hcd_to_ehci (hcd);
5578         U32 temp = ehci_readl((U32)&ehci->regs->port_status[0]);
5579 
5580         if (!(temp & PORT_CONNECT))
5581             break;
5582     }
5583 
5584     usb_choose_address(dev);
5585 
5586     #ifndef CONFIG_FARADAY_FOTG200
5587     if (hub->tt) {
5588       dev->tt = hub->tt;
5589       dev->ttport = hub->ttport;
5590     }
5591     else if (dev->speed != USB_SPEED_HIGH
5592         && hub->speed == USB_SPEED_HIGH) {
5593       dev->tt = &hubstate->tt;
5594       dev->ttport = port + 1;
5595     }
5596     #endif
5597 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5598 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5599 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5600 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5601 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5602 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5603 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5604 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5605 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5606 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5607 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5608 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5609 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5610 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5611 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5612 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5613 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5614 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5615 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5616 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5617 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5618 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5619 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5620 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5621 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5622 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5623 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5624 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5625 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5626 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5627 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5628 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5629 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5630 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5631 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5632 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5633 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5634 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5635 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5636 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5637 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5638 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5639 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5640 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5641 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5642 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5643 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5644 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5645 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5646 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5647 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5648 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5649 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5650 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5651 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5652 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5653 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5654 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5655 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5656 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5657 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5658 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5659 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5660 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5661 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5662 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5663 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5664 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5665 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5666 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5667 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5668 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5669 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5670 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5671 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5672 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5673 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5674 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5675 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5676 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5677 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5678 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5679 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5680 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5681 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5682 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5683 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5684 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5685 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5686 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5687 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5688 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5689 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5690 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5691 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5692 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5693 
5694 
5695 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5696 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5697 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5698 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5699 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5700 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5701 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5702 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5703 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5704 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5705 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5706 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5707 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5708 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5709 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5710 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5711 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5712 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5713 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5714 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5715 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5716 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5717 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5718 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5719 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5720 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5721 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5722 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5723 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5724 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5725 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5726 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5727 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5728 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5729 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5730 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5731 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5732 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5733 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5734 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5735 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5736 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5737 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5738 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5739 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5740 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5741 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5742 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5743 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5744 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5745 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5746 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5747 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5748 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5749 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5750 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5751 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5752 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5753 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5754 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5755 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5756 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5757 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5758 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5759 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5760 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5761 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5762 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5763 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5764 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5765 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5766 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5767 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5768 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5769 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5770 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5771 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5772 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5773 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5774 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5775 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5776 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5777 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5778 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5779 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5780 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5781 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5782 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5783 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5784 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5785 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5786 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5787 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5788 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5789 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5790 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5791     pdev = dev->parent;
5792     if (pdev->devpath [0] != '0')
5793       len = USB_sprintf (dev->devpath,
5794         "%s.%d", pdev->devpath, port + 1);
5795     else
5796       len = USB_sprintf (dev->devpath,
5797         "%d", port + 1);
5798     if (len == sizeof dev->devpath) {
5799       dev_err (&hubstate->intf->dev,
5800         "devpath size! usb/%03d/%03d path %s\n",
5801         dev->bus->busnum, dev->devnum, dev->devpath);
5802     }
5803 
5804     dev_info (&hubstate->intf->dev,
5805       "new USB device on port %d, assigned address %d\n",
5806       port + 1, dev->devnum);
5807 
5808     dev->dev.parent = dev->parent->dev.parent->parent;
5809 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5810 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5811 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5812 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5813 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5814 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5815 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5816 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5817 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5818 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5819 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5820 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5821 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5822 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5823 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5824 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5825 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5826 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5827 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5828 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5829 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5830 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5831 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5832 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5833 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5834 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5835 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5836 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5837 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5838 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5839 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5840 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5841 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5842 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5843 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5844 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5845 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5846 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5847 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5848 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5849 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5850 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5851 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5852 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5853 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5854 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5855 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5856 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5857 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5858 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5859 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5860 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5861 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5862 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5863 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5864 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5865 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5866 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5867 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5868 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5869 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5870 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5871 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5872 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5873 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5874 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5875 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5876 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5877 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5878 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5879 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5880 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5881 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5882 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5883 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5884 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5885 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5886 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5887 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5888 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5889 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5890 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5891 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5892 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5893 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5894 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5895 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5896 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5897 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5898 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5899 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5900 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5901 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5902 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5903 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5904 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5905 
5906     g_CurntPort = port;
5907     if (!usb_new_device(dev, &hub->dev))
5908       goto done;
5909 
5910     //Clean qh buffer
5911     phcd_dev = (struct hcd_dev *)dev->hcpriv;
5912     ehci_endpoint_disable(hcd, phcd_dev, 0);
5913 
5914     usb_put_dev(dev);
5915 
5916     delay = HUB_LONG_RESET_TIME;
5917   }
5918 
5919 
5920   diag_printf("HUB_PROBE_TRIES fail, i = %d\n", i);
5921   hub->children[port] = NULL;
5922   hub_port_disable(hub, port);
5923 done:
5924   up(&usb_address0_sem);
5925 }
5926 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5927 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5928 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5929 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5930 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5931 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5932 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5933 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5934 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5935 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5936 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5937 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5938 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5939 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5940 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5941 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5942 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5943 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5944 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5945 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5946 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5947 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5948 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5949 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5950 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5951 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5952 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5953 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5954 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5955 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5956 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5957 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5958 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5959 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5960 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5961 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5962 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5963 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5964 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5965 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5966 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5967 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5968 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5969 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5970 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5971 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5972 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5973 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5974 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5975 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5976 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5977 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5978 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5979 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5980 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5981 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5982 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5983 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5984 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5985 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5986 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5987 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5988 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5989 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5990 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5991 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5992 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5993 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5994 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5995 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5996 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5997 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5998 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
5999 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6000 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6001 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6002 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6003 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6004 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6005 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6006 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6007 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6008 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6009 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6010 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6011 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6012 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6013 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6014 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6015 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6016 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6017 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6018 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6019 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6020 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6021 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6022 
clean_hub_events(void)6023 void clean_hub_events(void)
6024 {
6025   struct list_head *tmp;
6026 
6027 //  MsOS_DisableInterrupt(E_IRQ_FIQ_ALL);
6028    MS_U32 u32OldIntr;
6029    u32OldIntr = MsOS_DisableAllInterrupts();
6030 
6031   while (1) {
6032     if (list_empty(&hub_event_list))
6033       break;
6034     tmp = hub_event_list.next;
6035     list_del_init(tmp);
6036   }
6037 
6038 //  MsOS_EnableInterrupt(E_IRQ_FIQ_ALL);
6039     MsOS_RestoreAllInterrupts(u32OldIntr);
6040 
6041 }
6042 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6043 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6044 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6045 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6046 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6047 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6048 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6049 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6050 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6051 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6052 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6053 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6054 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6055 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6056 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6057 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6058 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6059 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6060 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6061 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6062 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6063 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6064 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6065 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6066 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6067 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6068 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6069 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6070 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6071 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6072 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6073 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6074 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6075 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6076 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6077 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6078 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6079 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6080 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6081 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6082 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6083 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6084 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6085 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6086 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6087 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6088 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6089 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6090 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6091 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6092 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6093 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6094 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6095 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6096 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6097 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6098 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6099 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6100 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6101 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6102 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6103 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6104 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6105 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6106 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6107 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6108 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6109 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6110 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6111 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6112 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6113 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6114 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6115 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6116 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6117 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6118 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6119 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6120 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6121 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6122 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6123 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6124 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6125 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6126 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6127 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6128 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6129 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6130 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6131 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6132 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6133 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6134 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6135 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6136 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6137 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6138 
has_hub_events(U16 * pPortStatus)6139 BOOL has_hub_events(U16 *pPortStatus)
6140 {
6141     //U16 portstatus;
6142     BOOL status;
6143     U16 portchange;
6144     struct list_head *tmp;
6145     struct usb_device *dev;
6146     struct usb_hub *hub;
6147     //int i, ret;
6148 
6149     USBCriticalSectionIn(0);
6150     if (list_empty(&hub_event_list))
6151         status = FALSE;
6152     else
6153     {
6154         U32 u32OldIntr;
6155         u32OldIntr = MsOS_DisableAllInterrupts();
6156 
6157         tmp = hub_event_list.next;
6158         hub = list_entry(tmp, struct usb_hub, event_list);
6159         dev = interface_to_usbdev(hub->intf);
6160 
6161         //MsOS_EnableInterrupt(E_IRQ_FIQ_ALL);
6162         MsOS_RestoreAllInterrupts(u32OldIntr);
6163 
6164 
6165         hub_port_status(dev, 0, pPortStatus, &portchange);
6166         //diag_printf("<has_hub_events> portstatus: %X\n", *pPortStatus);
6167 
6168         if (portchange & USB_PORT_STAT_C_CONNECTION)
6169             status = TRUE;
6170         else
6171             status = FALSE;
6172     }
6173 
6174     USBCriticalSectionOut(0);
6175     return status;
6176 }
6177 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6178 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6179 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6180 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6181 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6182 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6183 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6184 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6185 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6186 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6187 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6188 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6189 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6190 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6191 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6192 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6193 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6194 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6195 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6196 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6197 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6198 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6199 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6200 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6201 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6202 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6203 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6204 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6205 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6206 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6207 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6208 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6209 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6210 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6211 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6212 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6213 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6214 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6215 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6216 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6217 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6218 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6219 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6220 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6221 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6222 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6223 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6224 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6225 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6226 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6227 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6228 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6229 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6230 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6231 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6232 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6233 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6234 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6235 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6236 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6237 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6238 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6239 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6240 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6241 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6242 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6243 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6244 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6245 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6246 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6247 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6248 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6249 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6250 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6251 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6252 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6253 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6254 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6255 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6256 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6257 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6258 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6259 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6260 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6261 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6262 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6263 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6264 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6265 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6266 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6267 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6268 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6269 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6270 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6271 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6272 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6273 
hub_events(void)6274 static void hub_events(void)
6275 {
6276   U32 flags;
6277   struct list_head *tmp;
6278   struct usb_device *dev;
6279   struct usb_hub *hub;
6280   U16 hubstatus;
6281   U16 hubchange;
6282   U16 portstatus;
6283   U16 portchange;
6284   int i, ret;
6285 
6286   while (1) {
6287     spin_lock_irqsave(&hub_event_lock, flags);
6288 
6289     if (list_empty(&hub_event_list))
6290       break;
6291 
6292  // MsOS_DisableInterrupt(E_IRQ_FIQ_ALL);
6293      U32 u32OldIntr;
6294     u32OldIntr = MsOS_DisableAllInterrupts();
6295 
6296     tmp = hub_event_list.next;
6297 
6298 	hub = list_entry(tmp, struct usb_hub, event_list);
6299     //list_entry(tmp, struct usb_hub, event_list,struct list_head, hub);
6300     dev = interface_to_usbdev(hub->intf);
6301 
6302     list_del_init(tmp);
6303  // MsOS_EnableInterrupt(E_IRQ_FIQ_ALL);
6304       MsOS_RestoreAllInterrupts(u32OldIntr);
6305 
6306     //if (unlikely(down_trylock(&hub->khubd_sem)))
6307 
6308     spin_unlock_irqrestore(&hub_event_lock, flags);
6309 
6310     if (hub->error) {
6311       dev_dbg (&hub->intf->dev, "resetting for error %d\n",
6312         hub->error);
6313 
6314       if (hub_reset(hub)) {
6315         dev_dbg (&hub->intf->dev,
6316           "can't reset; disconnecting%s","\n");
6317         up(&hub->khubd_sem);
6318         hub_start_disconnect(dev);
6319         continue;
6320       }
6321 
6322       hub->nerrors = 0;
6323       hub->error = 0;
6324     }
6325 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6326 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6327 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6328 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6329 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6330 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6331 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6332 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6333 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6334 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6335 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6336 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6337 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6338 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6339 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6340 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6341 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6342 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6343 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6344 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6345 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6346 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6347 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6348 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6349 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6350 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6351 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6352 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6353 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6354 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6355 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6356 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6357 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6358 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6359 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6360 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6361 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6362 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6363 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6364 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6365 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6366 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6367 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6368 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6369 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6370 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6371 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6372 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6373 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6374 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6375 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6376 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6377 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6378 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6379 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6380 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6381 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6382 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6383 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6384 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6385 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6386 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6387 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6388 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6389 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6390 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6391 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6392 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6393 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6394 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6395 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6396 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6397 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6398 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6399 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6400 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6401 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6402 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6403 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6404 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6405 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6406 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6407 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6408 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6409 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6410 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6411 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6412 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6413 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6414 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6415 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6416 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6417 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6418 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6419 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6420 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6421 
6422     //diag_printf("get hub event\n");
6423     for (i = 0; i < hub->descriptor.bNbrPorts; i++) {
6424       ret = hub_port_status(dev, i, &portstatus, &portchange);
6425       if (ret < 0) {
6426         continue;
6427       }
6428       if (portchange & USB_PORT_STAT_C_CONNECTION) {
6429         hub_port_connect_change(hub, i, portstatus, portchange);
6430       } else if (portchange & USB_PORT_STAT_C_ENABLE) {
6431         dev_dbg (hubdev (dev),
6432           "port %d enable change, status %x\n",
6433           i + 1, portstatus);
6434         clear_port_feature(dev,
6435           i + 1, USB_PORT_FEAT_C_ENABLE);
6436 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6437 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6438 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6439 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6440 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6441 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6442 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6443 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6444 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6445 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6446 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6447 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6448 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6449 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6450 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6451 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6452 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6453 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6454 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6455 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6456 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6457 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6458 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6459 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6460 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6461 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6462 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6463 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6464 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6465 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6466 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6467 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6468 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6469 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6470 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6471 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6472 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6473 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6474 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6475 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6476 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6477 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6478 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6479 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6480 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6481 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6482 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6483 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6484 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6485 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6486 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6487 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6488 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6489 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6490 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6491 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6492 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6493 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6494 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6495 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6496 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6497 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6498 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6499 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6500 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6501 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6502 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6503 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6504 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6505 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6506 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6507 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6508 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6509 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6510 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6511 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6512 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6513 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6514 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6515 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6516 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6517 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6518 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6519 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6520 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6521 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6522 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6523 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6524 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6525 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6526 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6527 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6528 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6529 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6530 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6531 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6532 
6533 
6534 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6535 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6536 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6537 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6538 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6539 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6540 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6541 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6542 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6543 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6544 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6545 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6546 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6547 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6548 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6549 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6550 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6551 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6552 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6553 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6554 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6555 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6556 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6557 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6558 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6559 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6560 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6561 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6562 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6563 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6564 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6565 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6566 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6567 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6568 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6569 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6570 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6571 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6572 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6573 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6574 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6575 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6576 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6577 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6578 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6579 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6580 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6581 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6582 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6583 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6584 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6585 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6586 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6587 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6588 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6589 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6590 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6591 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6592 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6593 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6594 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6595 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6596 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6597 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6598 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6599 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6600 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6601 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6602 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6603 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6604 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6605 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6606 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6607 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6608 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6609 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6610 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6611 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6612 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6613 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6614 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6615 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6616 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6617 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6618 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6619 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6620 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6621 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6622 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6623 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6624 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6625 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6626 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6627 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6628 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6629 		/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6630         if (!(portstatus & USB_PORT_STAT_ENABLE)
6631             && (portstatus & USB_PORT_STAT_CONNECTION)
6632             && (dev->children[i])) {
6633           dev_err (&hub->intf->dev,
6634               "port %i "
6635               "disabled by hub (EMI?), "
6636               "re-enabling...",
6637             i + 1);
6638           hub_port_connect_change(hub,
6639             i, portstatus, portchange);
6640         }
6641       }
6642 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6643 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6644 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6645 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6646 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6647 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6648 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6649 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6650 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6651 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6652 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6653 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6654 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6655 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6656 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6657 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6658 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6659 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6660 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6661 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6662 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6663 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6664 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6665 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6666 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6667 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6668 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6669 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6670 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6671 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6672 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6673 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6674 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6675 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6676 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6677 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6678 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6679 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6680 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6681 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6682 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6683 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6684 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6685 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6686 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6687 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6688 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6689 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6690 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6691 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6692 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6693 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6694 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6695 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6696 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6697 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6698 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6699 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6700 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6701 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6702 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6703 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6704 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6705 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6706 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6707 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6708 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6709 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6710 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6711 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6712 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6713 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6714 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6715 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6716 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6717 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6718 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6719 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6720 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6721 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6722 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6723 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6724 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6725 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6726 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6727 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6728 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6729 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6730 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6731 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6732 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6733 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6734 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6735 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6736 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6737 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6738 
6739       if (portchange & USB_PORT_STAT_C_SUSPEND) {
6740         dev_dbg (&hub->intf->dev,
6741           "suspend change on port %d\n",
6742           i + 1);
6743         clear_port_feature(dev,
6744           i + 1,  USB_PORT_FEAT_C_SUSPEND);
6745       }
6746 
6747       if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
6748         dev_err (&hub->intf->dev,
6749           "over-current change on port %d\n",
6750           i + 1);
6751         clear_port_feature(dev,
6752           i + 1, USB_PORT_FEAT_C_OVER_CURRENT);
6753         hub_power_on(hub);
6754       }
6755 
6756       if (portchange & USB_PORT_STAT_C_RESET) {
6757         dev_dbg (&hub->intf->dev,
6758           "reset change on port %d\n",
6759           i + 1);
6760         clear_port_feature(dev,
6761           i + 1, USB_PORT_FEAT_C_RESET);
6762       }
6763     } /* end for i */
6764 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6765 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6766 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6767 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6768 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6769 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6770 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6771 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6772 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6773 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6774 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6775 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6776 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6777 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6778 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6779 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6780 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6781 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6782 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6783 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6784 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6785 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6786 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6787 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6788 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6789 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6790 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6791 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6792 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6793 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6794 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6795 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6796 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6797 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6798 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6799 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6800 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6801 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6802 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6803 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6804 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6805 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6806 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6807 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6808 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6809 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6810 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6811 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6812 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6813 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6814 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6815 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6816 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6817 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6818 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6819 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6820 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6821 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6822 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6823 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6824 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6825 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6826 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6827 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6828 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6829 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6830 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6831 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6832 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6833 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6834 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6835 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6836 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6837 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6838 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6839 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6840 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6841 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6842 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6843 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6844 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6845 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6846 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6847 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6848 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6849 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6850 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6851 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6852 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6853 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6854 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6855 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6856 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6857 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6858 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6859 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6860 
6861     if (hub_hub_status(hub, &hubstatus, &hubchange) < 0) {
6862       dev_err (&hub->intf->dev, "get_hub_status failed%s","\n");
6863     }
6864     else {
6865       if (hubchange & HUB_CHANGE_LOCAL_POWER) {
6866         dev_dbg (&hub->intf->dev, "power change%s","\n");
6867         clear_hub_feature(dev, C_HUB_LOCAL_POWER);
6868       }
6869       if (hubchange & HUB_CHANGE_OVERCURRENT) {
6870         dev_dbg (&hub->intf->dev, "overcurrent change%s","\n");
6871         wait_ms(500);
6872         clear_hub_feature(dev, C_HUB_OVER_CURRENT);
6873                           hub_power_on(hub);
6874       }
6875     }
6876     up(&hub->khubd_sem);
6877         } /* end while (1) */
6878 
6879   spin_unlock_irqrestore(&hub_event_lock, flags);
6880 }
6881 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6882 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6883 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6884 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6885 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6886 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6887 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6888 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6889 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6890 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6891 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6892 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6893 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6894 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6895 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6896 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6897 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6898 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6899 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6900 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6901 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6902 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6903 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6904 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6905 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6906 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6907 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6908 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6909 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6910 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6911 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6912 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6913 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6914 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6915 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6916 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6917 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6918 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6919 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6920 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6921 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6922 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6923 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6924 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6925 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6926 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6927 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6928 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6929 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6930 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6931 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6932 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6933 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6934 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6935 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6936 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6937 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6938 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6939 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6940 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6941 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6942 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6943 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6944 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6945 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6946 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6947 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6948 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6949 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6950 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6951 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6952 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6953 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6954 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6955 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6956 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6957 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6958 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6959 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6960 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6961 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6962 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6963 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6964 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6965 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6966 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6967 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6968 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6969 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6970 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6971 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6972 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6973 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6974 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6975 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6976 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
6977 
6978 #if 0
6979 static int hub_thread(void *__hub)
6980 {
6981   do {
6982     hub_events();
6983   }while(1);
6984 
6985   dbg("hub_thread exiting%s","");
6986   //complete_and_exit(&khubd_exited, 0);
6987   return 0;
6988 }
6989 #endif
6990 
hub_poll(void)6991 void hub_poll(void)
6992 {
6993   //check_usb_lock();
6994   USBCriticalSectionIn(0);
6995   hub_events();
6996   USBCriticalSectionOut(0);
6997 
6998   //unlock_usb_core();
6999 }
7000 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7001 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7002 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7003 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7004 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7005 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7006 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7007 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7008 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7009 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7010 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7011 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7012 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7013 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7014 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7015 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7016 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7017 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7018 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7019 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7020 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7021 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7022 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7023 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7024 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7025 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7026 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7027 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7028 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7029 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7030 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7031 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7032 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7033 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7034 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7035 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7036 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7037 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7038 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7039 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7040 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7041 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7042 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7043 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7044 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7045 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7046 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7047 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7048 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7049 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7050 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7051 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7052 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7053 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7054 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7055 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7056 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7057 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7058 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7059 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7060 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7061 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7062 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7063 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7064 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7065 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7066 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7067 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7068 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7069 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7070 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7071 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7072 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7073 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7074 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7075 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7076 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7077 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7078 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7079 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7080 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7081 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7082 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7083 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7084 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7085 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7086 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7087 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7088 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7089 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7090 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7091 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7092 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7093 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7094 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7095 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7096 
7097 static struct usb_device_id hub_id_table [] = {
7098     { USB_DEVICE_ID_MATCH_DEV_CLASS,0,0,0,0,USB_CLASS_HUB,0,0,0,0,0,0},
7099     { USB_DEVICE_ID_MATCH_INT_CLASS,0,0,0,0,0,0,0,USB_CLASS_HUB,0,0,0},
7100     { 0,0,0,0,0,0,0,0,0,0,0,0}
7101 
7102 };
7103 
7104 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7105 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7106 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7107 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7108 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7109 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7110 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7111 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7112 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7113 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7114 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7115 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7116 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7117 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7118 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7119 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7120 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7121 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7122 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7123 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7124 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7125 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7126 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7127 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7128 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7129 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7130 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7131 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7132 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7133 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7134 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7135 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7136 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7137 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7138 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7139 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7140 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7141 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7142 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7143 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7144 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7145 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7146 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7147 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7148 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7149 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7150 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7151 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7152 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7153 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7154 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7155 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7156 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7157 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7158 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7159 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7160 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7161 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7162 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7163 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7164 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7165 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7166 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7167 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7168 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7169 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7170 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7171 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7172 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7173 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7174 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7175 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7176 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7177 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7178 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7179 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7180 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7181 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7182 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7183 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7184 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7185 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7186 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7187 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7188 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7189 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7190 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7191 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7192 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7193 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7194 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7195 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7196 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7197 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7198 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7199 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7200 
7201 static struct usb_driver hub_driver = {
7202   NULL,
7203   "hub",
7204   hub_probe,
7205   hub_disconnect,
7206   hub_ioctl,
7207   hub_id_table
7208 };
7209 
7210 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7211 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7212 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7213 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7214 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7215 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7216 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7217 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7218 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7219 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7220 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7221 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7222 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7223 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7224 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7225 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7226 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7227 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7228 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7229 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7230 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7231 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7232 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7233 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7234 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7235 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7236 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7237 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7238 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7239 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7240 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7241 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7242 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7243 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7244 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7245 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7246 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7247 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7248 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7249 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7250 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7251 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7252 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7253 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7254 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7255 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7256 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7257 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7258 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7259 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7260 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7261 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7262 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7263 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7264 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7265 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7266 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7267 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7268 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7269 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7270 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7271 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7272 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7273 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7274 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7275 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7276 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7277 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7278 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7279 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7280 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7281 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7282 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7283 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7284 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7285 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7286 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7287 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7288 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7289 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7290 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7291 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7292 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7293 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7294 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7295 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7296 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7297 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7298 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7299 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7300 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7301 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7302 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7303 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7304 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7305 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7306 
usb_hub_init(void)7307 int usb_hub_init(void)
7308 {
7309   //pid_t pid;
7310 
7311 
7312   if (usb_register(&hub_driver) < 0) {
7313     usb_err("Unable to register USB hub driver%s","");
7314     return -1;
7315   }
7316   // Start up hub thread here (if platform has OS support)
7317 
7318   return 0;
7319   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7320   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7321   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7322   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7323   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7324   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7325   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7326   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7327   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7328   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7329   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7330   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7331   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7332   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7333   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7334   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7335   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7336   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7337   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7338   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7339   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7340   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7341   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7342   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7343   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7344   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7345   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7346   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7347   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7348   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7349   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7350   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7351   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7352   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7353   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7354   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7355   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7356   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7357   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7358   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7359   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7360   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7361   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7362   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7363   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7364   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7365   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7366   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7367   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7368   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7369   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7370   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7371   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7372   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7373   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7374   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7375   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7376   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7377   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7378   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7379   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7380   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7381   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7382   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7383   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7384   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7385   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7386   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7387   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7388   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7389   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7390   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7391   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7392   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7393   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7394   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7395   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7396   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7397   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7398   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7399   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7400   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7401   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7402   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7403   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7404   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7405   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7406   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7407   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7408   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7409   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7410   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7411   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7412   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7413   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7414   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7415 
7416   /*
7417   pid = kernel_thread(hub_thread, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
7418 
7419   if (pid >= 0) {
7420     khubd_pid = pid;
7421 
7422     return 0;
7423   }
7424   */
7425 
7426   usb_deregister(&hub_driver);
7427   usb_err("failed to start hub_thread%s","");
7428   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7429   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7430   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7431   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7432   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7433   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7434   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7435   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7436   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7437   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7438   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7439   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7440   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7441   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7442   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7443   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7444   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7445   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7446   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7447   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7448   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7449   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7450   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7451   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7452   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7453   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7454   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7455   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7456   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7457   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7458   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7459   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7460   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7461   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7462   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7463   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7464   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7465   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7466   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7467   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7468   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7469   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7470   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7471   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7472   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7473   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7474   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7475   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7476   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7477   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7478   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7479   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7480   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7481   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7482   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7483   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7484   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7485   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7486   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7487   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7488   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7489   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7490   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7491   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7492   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7493   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7494   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7495   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7496   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7497   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7498   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7499   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7500   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7501   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7502   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7503   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7504   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7505   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7506   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7507   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7508   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7509   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7510   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7511   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7512   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7513   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7514   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7515   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7516   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7517   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7518   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7519   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7520   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7521   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7522   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7523   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7524 
7525   return -1;
7526 }
7527 
usb_hub_cleanup(void)7528 void usb_hub_cleanup(void)
7529 {
7530   //int ret;
7531 
7532   //ret = kill_proc(khubd_pid, SIGKILL, 1);
7533 
7534   //wait_for_completion(&khubd_exited);
7535   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7536   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7537   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7538   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7539   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7540   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7541   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7542   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7543   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7544   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7545   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7546   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7547   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7548   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7549   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7550   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7551   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7552   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7553   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7554   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7555   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7556   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7557   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7558   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7559   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7560   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7561   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7562   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7563   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7564   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7565   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7566   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7567   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7568   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7569   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7570   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7571   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7572   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7573   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7574   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7575   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7576   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7577   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7578   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7579   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7580   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7581   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7582   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7583   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7584   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7585   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7586   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7587   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7588   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7589   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7590   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7591   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7592   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7593   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7594   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7595   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7596   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7597   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7598   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7599   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7600   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7601   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7602   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7603   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7604   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7605   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7606   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7607   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7608   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7609   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7610   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7611   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7612   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7613   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7614   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7615   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7616   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7617   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7618   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7619   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7620   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7621   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7622   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7623   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7624   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7625   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7626   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7627   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7628   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7629   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7630   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7631 
7632 
7633   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7634   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7635   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7636   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7637   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7638   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7639   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7640   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7641   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7642   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7643   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7644   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7645   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7646   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7647   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7648   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7649   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7650   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7651   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7652   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7653   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7654   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7655   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7656   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7657   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7658   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7659   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7660   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7661   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7662   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7663   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7664   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7665   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7666   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7667   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7668   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7669   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7670   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7671   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7672   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7673   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7674   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7675   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7676   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7677   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7678   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7679   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7680   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7681   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7682   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7683   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7684   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7685   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7686   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7687   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7688   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7689   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7690   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7691   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7692   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7693   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7694   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7695   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7696   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7697   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7698   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7699   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7700   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7701   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7702   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7703   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7704   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7705   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7706   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7707   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7708   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7709   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7710   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7711   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7712   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7713   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7714   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7715   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7716   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7717   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7718   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7719   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7720   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7721   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7722   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7723   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7724   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7725   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7726   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7727   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7728   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7729   usb_deregister(&hub_driver);
7730 }
7731 
7732 
7733 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7734 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7735 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7736 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7737 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7738 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7739 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7740 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7741 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7742 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7743 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7744 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7745 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7746 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7747 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7748 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7749 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7750 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7751 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7752 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7753 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7754 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7755 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7756 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7757 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7758 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7759 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7760 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7761 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7762 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7763 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7764 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7765 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7766 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7767 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7768 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7769 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7770 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7771 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7772 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7773 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7774 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7775 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7776 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7777 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7778 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7779 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7780 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7781 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7782 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7783 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7784 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7785 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7786 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7787 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7788 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7789 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7790 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7791 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7792 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7793 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7794 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7795 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7796 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7797 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7798 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7799 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7800 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7801 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7802 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7803 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7804 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7805 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7806 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7807 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7808 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7809 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7810 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7811 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7812 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7813 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7814 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7815 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7816 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7817 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7818 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7819 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7820 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7821 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7822 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7823 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7824 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7825 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7826 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7827 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7828 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
usb_physical_reset_device(struct usb_device * dev)7829 int usb_physical_reset_device(struct usb_device *dev)
7830 {
7831   struct usb_device *parent = dev->parent;
7832   struct usb_device_descriptor *descriptor;
7833   int i, ret, port = -1;
7834 
7835   if (!parent) {
7836     usb_err("attempting to reset root hub!%s","");
7837     return -EINVAL;
7838   }
7839   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7840   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7841   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7842   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7843   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7844   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7845   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7846   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7847   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7848   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7849   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7850   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7851   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7852   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7853   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7854   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7855   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7856   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7857   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7858   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7859   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7860   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7861   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7862   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7863   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7864   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7865   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7866   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7867   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7868   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7869   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7870   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7871   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7872   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7873   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7874   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7875   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7876   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7877   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7878   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7879   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7880   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7881   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7882   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7883   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7884   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7885   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7886   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7887   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7888   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7889   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7890   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7891   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7892   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7893   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7894   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7895   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7896   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7897   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7898   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7899   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7900   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7901   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7902   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7903   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7904   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7905   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7906   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7907   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7908   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7909   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7910   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7911   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7912   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7913   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7914   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7915   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7916   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7917   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7918   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7919   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7920   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7921   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7922   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7923   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7924   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7925   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7926   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7927   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7928   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7929   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7930   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7931   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7932   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7933   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7934   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7935 
7936   for (i = 0; i < parent->maxchild; i++)
7937     if (parent->children[i] == dev) {
7938       port = i;
7939       break;
7940     }
7941 
7942   if (port < 0)
7943     return -ENOENT;
7944 
7945   descriptor = (struct usb_device_descriptor*) kmalloc(sizeof *descriptor, GFP_NOIO);
7946   if (!descriptor) {
7947     return -ENOMEM;
7948   }
7949   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7950   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7951   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7952   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7953   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7954   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7955   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7956   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7957   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7958   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7959   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7960   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7961   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7962   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7963   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7964   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7965   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7966   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7967   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7968   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7969   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7970   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7971   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7972   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7973   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7974   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7975   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7976   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7977   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7978   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7979   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7980   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7981   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7982   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7983   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7984   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7985   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7986   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7987   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7988   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7989   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7990   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7991   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7992   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7993   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7994   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7995   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7996   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7997   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7998   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
7999   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8000   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8001   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8002   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8003   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8004   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8005   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8006   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8007   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8008   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8009   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8010   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8011   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8012   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8013   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8014   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8015   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8016   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8017   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8018   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8019   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8020   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8021   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8022   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8023   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8024   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8025   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8026   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8027   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8028   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8029   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8030   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8031   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8032   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8033   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8034   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8035   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8036   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8037   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8038   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8039   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8040   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8041   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8042   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8043   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8044   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8045 
8046   down(&usb_address0_sem);
8047 
8048   if (hub_port_reset(parent, port, dev, HUB_SHORT_RESET_TIME)) {
8049     hub_port_disable(parent, port);
8050     up(&usb_address0_sem);
8051     kfree(descriptor);
8052     return(-ENODEV);
8053   }
8054   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8055   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8056   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8057   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8058   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8059   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8060   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8061   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8062   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8063   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8064   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8065   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8066   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8067   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8068   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8069   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8070   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8071   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8072   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8073   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8074   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8075   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8076   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8077   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8078   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8079   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8080   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8081   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8082   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8083   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8084   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8085   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8086   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8087   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8088   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8089   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8090   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8091   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8092   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8093   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8094   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8095   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8096   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8097   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8098   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8099   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8100   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8101   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8102   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8103   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8104   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8105   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8106   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8107   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8108   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8109   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8110   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8111   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8112   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8113   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8114   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8115   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8116   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8117   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8118   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8119   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8120   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8121   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8122   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8123   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8124   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8125   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8126   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8127   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8128   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8129   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8130   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8131   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8132   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8133   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8134   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8135   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8136   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8137   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8138   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8139   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8140   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8141   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8142   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8143   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8144   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8145   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8146   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8147   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8148   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8149   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8150 
8151   ret = usb_set_address(dev);
8152   if (ret < 0) {
8153     usb_err("USB device not accepting new address (error=%d)", ret);
8154     hub_port_disable(parent, port);
8155     up(&usb_address0_sem);
8156     kfree(descriptor);
8157     return ret;
8158   }
8159   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8160   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8161   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8162   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8163   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8164   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8165   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8166   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8167   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8168   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8169   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8170   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8171   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8172   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8173   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8174   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8175   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8176   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8177   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8178   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8179   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8180   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8181   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8182   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8183   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8184   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8185   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8186   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8187   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8188   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8189   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8190   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8191   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8192   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8193   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8194   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8195   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8196   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8197   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8198   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8199   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8200   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8201   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8202   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8203   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8204   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8205   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8206   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8207   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8208   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8209   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8210   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8211   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8212   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8213   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8214   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8215   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8216   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8217   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8218   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8219   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8220   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8221   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8222   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8223   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8224   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8225   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8226   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8227   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8228   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8229   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8230   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8231   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8232   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8233   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8234   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8235   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8236   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8237   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8238   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8239   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8240   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8241   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8242   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8243   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8244   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8245   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8246   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8247   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8248   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8249   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8250   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8251   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8252   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8253   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8254   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8255 
8256   wait_ms(10);
8257 
8258   up(&usb_address0_sem);
8259 
8260 
8261   ret = usb_get_descriptor(dev, USB_DT_DEVICE, 0, descriptor,
8262       sizeof(*descriptor));
8263   if (ret < 0) {
8264     kfree(descriptor);
8265     return ret;
8266   }
8267   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8268   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8269   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8270   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8271   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8272   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8273   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8274   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8275   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8276   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8277   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8278   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8279   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8280   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8281   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8282   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8283   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8284   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8285   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8286   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8287   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8288   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8289   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8290   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8291   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8292   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8293   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8294   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8295   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8296   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8297   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8298   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8299   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8300   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8301   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8302   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8303   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8304   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8305   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8306   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8307   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8308   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8309   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8310   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8311   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8312   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8313   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8314   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8315   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8316   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8317   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8318   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8319   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8320   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8321   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8322   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8323   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8324   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8325   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8326   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8327   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8328   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8329   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8330   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8331   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8332   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8333   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8334   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8335   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8336   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8337   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8338   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8339   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8340   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8341   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8342   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8343   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8344   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8345   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8346   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8347   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8348   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8349   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8350   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8351   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8352   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8353   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8354   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8355   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8356   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8357   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8358   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8359   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8360   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8361   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8362   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8363 
8364   descriptor->bcdUSB = LE16ToCPU(descriptor->bcdUSB);
8365   descriptor->idVendor = LE16ToCPU(descriptor->idVendor);
8366   descriptor->idProduct = LE16ToCPU(descriptor->idProduct);
8367   descriptor->bcdDevice = LE16ToCPU(descriptor->bcdDevice);
8368 
8369   if (memcmp(&dev->descriptor, descriptor, sizeof(*descriptor))) {
8370     kfree(descriptor);
8371     usb_destroy_configuration(dev);
8372 
8373     ret = usb_get_device_descriptor(dev);
8374     if ((U32) ret < sizeof(dev->descriptor)) {
8375       if (ret < 0) {
8376         usb_err("unable to get device %s descriptor "
8377           "(error=%d)", dev->devpath, ret);
8378       }
8379       else
8380         usb_err("USB device %s descriptor short read "
8381           "(expected %i, got %i)",
8382           dev->devpath,
8383           sizeof(dev->descriptor), ret);
8384 
8385       clear_bit(dev->devnum, dev->bus->devmap.devicemap,U32);
8386       dev->devnum = -1;
8387       return -EIO;
8388     }
8389 
8390     ret = usb_get_configuration(dev);
8391     if (ret < 0) {
8392       usb_err("unable to get configuration (error=%d)", ret);
8393       usb_destroy_configuration(dev);
8394       clear_bit(dev->devnum, dev->bus->devmap.devicemap,U32);
8395       dev->devnum = -1;
8396       return 1;
8397     }
8398 
8399 	if(dev->descriptor.bDeviceClass == USB_CLASS_COMM)
8400 		usb_set_configuration(dev, dev->config[1].desc.bConfigurationValue);
8401 	else
8402     	usb_set_configuration(dev, dev->config[0].desc.bConfigurationValue);
8403     return 1;
8404   }
8405 
8406   kfree(descriptor);
8407   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8408   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8409   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8410   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8411   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8412   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8413   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8414   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8415   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8416   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8417   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8418   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8419   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8420   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8421   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8422   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8423   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8424   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8425   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8426   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8427   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8428   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8429   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8430   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8431   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8432   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8433   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8434   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8435   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8436   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8437   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8438   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8439   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8440   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8441   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8442   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8443   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8444   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8445   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8446   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8447   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8448   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8449   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8450   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8451   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8452   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8453   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8454   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8455   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8456   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8457   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8458   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8459   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8460   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8461   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8462   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8463   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8464   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8465   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8466   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8467   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8468   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8469   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8470   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8471   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8472   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8473   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8474   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8475   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8476   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8477   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8478   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8479   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8480   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8481   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8482   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8483   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8484   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8485   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8486   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8487   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8488   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8489   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8490   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8491   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8492   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8493   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8494   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8495   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8496   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8497   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8498   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8499   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8500   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8501   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8502   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8503 
8504   // GGYY
8505   ret = usb_set_configuration(dev, dev->actconfig->desc.bConfigurationValue);
8506 #if 0
8507   ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
8508                         USB_REQ_SET_CONFIGURATION, 0,
8509                         dev->actconfig->desc.bConfigurationValue, 0,
8510                         NULL, 0, HZ * USB_CTRL_SET_TIMEOUT);
8511 
8512   if (ret < 0) {
8513     usb_err("failed to set dev %s active configuration (error=%d)",
8514       dev->devpath, ret);
8515     return ret;
8516   }
8517 
8518   dev->state = USB_STATE_CONFIGURED;	//Note_Timeout
8519 #endif
8520 #if 0
8521   for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++) {
8522     struct usb_interface *intf = dev->actconfig->interface[i];
8523     struct usb_interface_descriptor *as;
8524 
8525     as = &intf->altsetting[intf->act_altsetting].desc;
8526     ret = usb_set_interface(dev, as->bInterfaceNumber,
8527       as->bAlternateSetting);
8528     if (ret < 0) {
8529       usb_err("failed to set active alternate setting "
8530         "for dev %s interface %d (error=%d)",
8531         dev->devpath, i, ret);
8532       return ret;
8533     }
8534   }
8535 #endif
8536 
8537   diag_printf("usb_physical_reset_device done\n");
8538   return 0;
8539 }
8540 
8541 //extern BOOL  gIsBadDevice;
8542 //extern BOOL  gIsBadDevice_Port2;
8543 //U8 g_usb_phy_reset_flg = FALSE;
8544 //U8 g_usb_phy_reset_flg_Port2 = FALSE;
8545 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8546 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8547 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8548 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8549 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8550 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8551 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8552 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8553 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8554 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8555 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8556 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8557 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8558 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8559 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8560 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8561 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8562 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8563 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8564 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8565 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8566 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8567 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8568 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8569 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8570 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8571 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8572 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8573 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8574 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8575 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8576 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8577 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8578 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8579 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8580 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8581 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8582 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8583 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8584 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8585 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8586 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8587 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8588 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8589 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8590 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8591 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8592 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8593 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8594 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8595 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8596 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8597 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8598 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8599 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8600 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8601 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8602 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8603 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8604 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8605 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8606 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8607 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8608 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8609 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8610 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8611 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8612 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8613 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8614 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8615 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8616 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8617 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8618 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8619 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8620 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8621 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8622 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8623 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8624 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8625 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8626 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8627 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8628 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8629 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8630 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8631 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8632 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8633 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8634 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8635 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8636 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8637 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8638 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8639 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8640 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8641 
usb_reset_device(struct usb_device * udev)8642 int usb_reset_device(struct usb_device *udev)
8643 {
8644   struct usb_hcd *hcd = (struct usb_hcd*) udev->bus->hcpriv;
8645   struct ehci_hcd *ehci = hcd_to_ehci(hcd);
8646   U8 temp_s;
8647   int r;
8648 
8649   //down_read(&gdev->bus->subsys.rwsem);
8650   diag_printf("usb_reset_device\n");
8651   temp_s = ehci_readb((U32)&ehci->regs->port_status[0]);
8652   temp_s &= PORT_CONNECT;
8653   if (temp_s == 0) // root hub disconnected
8654     return -1;
8655 
8656 //  if (udev->bus->hcpriv == cpe_ehci_dev.dev.driver_data)
8657 //  {
8658     //g_usb_phy_reset_flg = TRUE;
8659     if ((udev->parent->parent == NULL) && hcd->isBadDevice)  // one hub tier???
8660     {
8661         diag_printf("Reset the all USB\n");
8662         Usb_host_Init_EX(hcd);
8663         //Usb_host_Init();
8664     }
8665 //  }
8666 //  else
8667 //  {
8668 //#ifdef USB_PORT2_ENABLE
8669     //g_usb_phy_reset_flg_Port2 = TRUE;
8670 //    if ((udev->parent->parent== NULL) && hcd->isBadDevice)
8671 //    {
8672 //        diag_printf("Reset the all USB 2\n");
8673 //        Usb_host_Init_EX(hcd);
8674         //Usb_host_Init_Port2();
8675  //   }
8676 //#endif
8677 //  }
8678 
8679   r = usb_physical_reset_device(udev);
8680 
8681   //if (udev->bus->hcpriv == cpe_ehci_dev.dev.driver_data)
8682     //g_usb_phy_reset_flg = FALSE;
8683   //else
8684     //g_usb_phy_reset_flg_Port2 = FALSE;
8685 
8686   //up_read(&gdev->bus->subsys.rwsem);
8687 
8688   return r;
8689 }
8690 #endif	//#ifdef
8691 
8692 // --------------------------------------------------------------------
8693 LIST_HEAD(hub_event_list_Port1);
8694 LIST_HEAD(hub_event_list_Port3);
8695 
has_hub_events_EX(U16 * pPortStatus,struct s_gVar4UsbPort * pRootHub)8696 BOOL has_hub_events_EX(U16 *pPortStatus, struct s_gVar4UsbPort *pRootHub)
8697 {
8698     //U16 portstatus;
8699     BOOL status;
8700     U16 portchange;
8701     struct list_head *tmp;
8702     struct usb_device *dev;
8703     struct usb_hub *hub;
8704     struct list_head *tmp_list = pRootHub->p_hub_event;
8705 
8706     USBCriticalSectionIn(pRootHub->portNum);
8707     if (list_empty(tmp_list))
8708     {
8709         status = FALSE;
8710     }
8711     else
8712     {
8713         U32 u32OldIntr;
8714         u32OldIntr = MsOS_DisableAllInterrupts();
8715 
8716         tmp = tmp_list->next;
8717         hub = list_entry(tmp, struct usb_hub, event_list);
8718         dev = interface_to_usbdev(hub->intf);
8719 
8720         MsOS_RestoreAllInterrupts(u32OldIntr);
8721 
8722         hub_port_status(dev, 0, pPortStatus, &portchange);
8723         //diag_printf("portstatus: %X\n", *pPortStatus);
8724 
8725         if (portchange & USB_PORT_STAT_C_CONNECTION)
8726             status = TRUE;
8727         else
8728             status = FALSE;
8729     }
8730 
8731     USBCriticalSectionOut(pRootHub->portNum);
8732     return status;
8733 }
8734 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8735 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8736 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8737 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8738 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8739 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8740 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8741 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8742 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8743 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8744 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8745 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8746 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8747 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8748 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8749 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8750 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8751 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8752 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8753 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8754 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8755 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8756 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8757 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8758 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8759 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8760 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8761 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8762 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8763 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8764 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8765 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8766 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8767 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8768 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8769 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8770 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8771 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8772 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8773 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8774 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8775 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8776 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8777 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8778 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8779 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8780 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8781 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8782 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8783 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8784 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8785 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8786 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8787 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8788 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8789 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8790 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8791 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8792 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8793 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8794 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8795 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8796 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8797 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8798 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8799 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8800 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8801 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8802 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8803 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8804 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8805 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8806 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8807 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8808 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8809 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8810 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8811 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8812 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8813 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8814 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8815 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8816 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8817 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8818 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8819 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8820 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8821 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8822 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8823 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8824 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8825 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8826 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8827 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8828 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8829 /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8830 
hub_events_EX(struct s_gVar4UsbPort * pRootHub)8831 static void hub_events_EX(struct s_gVar4UsbPort *pRootHub)
8832 {
8833   U32 flags;
8834   struct list_head *tmp_list = pRootHub->p_hub_event;
8835   struct list_head *tmp;
8836   struct usb_device *dev;
8837   struct usb_hub *hub;
8838   U16 hubstatus;
8839   U16 hubchange;
8840   U16 portstatus;
8841   U16 portchange;
8842   int i, ret;
8843 
8844 
8845   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8846   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8847   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8848   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8849   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8850   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8851   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8852   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8853   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8854   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8855   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8856   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8857   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8858   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8859   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8860   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8861   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8862   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8863   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8864   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8865   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8866   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8867   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8868   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8869   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8870   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8871   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8872   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8873   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8874   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8875   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8876   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8877   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8878   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8879   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8880   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8881   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8882   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8883   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8884   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8885   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8886   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8887   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8888   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8889   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8890   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8891   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8892   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8893   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8894   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8895   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8896   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8897   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8898   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8899   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8900   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8901   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8902   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8903   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8904   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8905   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8906   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8907   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8908   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8909   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8910   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8911   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8912   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8913   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8914   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8915   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8916   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8917   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8918   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8919   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8920   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8921   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8922   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8923   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8924   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8925   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8926   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8927   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8928   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8929   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8930   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8931   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8932   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8933   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8934   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8935   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8936   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8937   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8938   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8939   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8940   /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8941   while (1) {
8942     spin_lock_irqsave(&hub_event_lock, flags);
8943 
8944     if (list_empty(tmp_list))
8945       break;
8946 
8947      U32 u32OldIntr;
8948     u32OldIntr = MsOS_DisableAllInterrupts();
8949 
8950     tmp = tmp_list->next;
8951 
8952     hub = list_entry(tmp, struct usb_hub, event_list);
8953     //list_entry(tmp, struct usb_hub, event_list,struct list_head, hub);
8954     dev = interface_to_usbdev(hub->intf);
8955 
8956     list_del_init(tmp);
8957     MsOS_RestoreAllInterrupts(u32OldIntr);
8958 
8959     //if (unlikely(down_trylock(&hub->khubd_sem)))
8960 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8961 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8962 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8963 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8964 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8965 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8966 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8967 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8968 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8969 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8970 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8971 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8972 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8973 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8974 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8975 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8976 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8977 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8978 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8979 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8980 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8981 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8982 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8983 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8984 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8985 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8986 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8987 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8988 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8989 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8990 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8991 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8992 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8993 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8994 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8995 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8996 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8997 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8998 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
8999 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9000 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9001 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9002 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9003 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9004 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9005 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9006 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9007 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9008 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9009 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9010 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9011 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9012 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9013 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9014 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9015 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9016 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9017 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9018 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9019 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9020 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9021 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9022 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9023 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9024 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9025 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9026 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9027 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9028 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9029 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9030 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9031 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9032 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9033 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9034 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9035 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9036 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9037 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9038 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9039 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9040 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9041 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9042 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9043 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9044 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9045 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9046 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9047 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9048 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9049 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9050 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9051 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9052 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9053 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9054 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9055 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9056 
9057     spin_unlock_irqrestore(&hub_event_lock, flags);
9058 
9059     if (hub->error) {
9060       dev_dbg (&hub->intf->dev, "resetting for error %d\n", hub->error);
9061 
9062       if (hub_reset(hub)) {
9063         dev_dbg (&hub->intf->dev, "can't reset; disconnecting%s","\n");
9064         up(&hub->khubd_sem);
9065         hub_start_disconnect(dev);
9066         continue;
9067       }
9068 
9069       hub->nerrors = 0;
9070       hub->error = 0;
9071     }
9072 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9073 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9074 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9075 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9076 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9077 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9078 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9079 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9080 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9081 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9082 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9083 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9084 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9085 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9086 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9087 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9088 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9089 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9090 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9091 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9092 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9093 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9094 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9095 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9096 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9097 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9098 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9099 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9100 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9101 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9102 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9103 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9104 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9105 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9106 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9107 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9108 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9109 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9110 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9111 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9112 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9113 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9114 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9115 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9116 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9117 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9118 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9119 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9120 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9121 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9122 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9123 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9124 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9125 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9126 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9127 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9128 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9129 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9130 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9131 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9132 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9133 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9134 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9135 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9136 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9137 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9138 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9139 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9140 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9141 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9142 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9143 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9144 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9145 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9146 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9147 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9148 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9149 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9150 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9151 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9152 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9153 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9154 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9155 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9156 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9157 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9158 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9159 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9160 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9161 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9162 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9163 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9164 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9165 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9166 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9167 	/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9168 
9169     diag_printf("EX**get hub event %d\n", pRootHub->portNum);
9170     for (i = 0; i < hub->descriptor.bNbrPorts; i++) {
9171           ret = hub_port_status(dev, i, &portstatus, &portchange);
9172           if (ret < 0) {
9173             continue;
9174           }
9175           if (portchange & USB_PORT_STAT_C_CONNECTION) {
9176             hub_port_connect_change(hub, i, portstatus, portchange);
9177           } else if (portchange & USB_PORT_STAT_C_ENABLE) {
9178             dev_dbg (hubdev (dev), "port %d enable change, status %x\n", i + 1, portstatus);
9179             clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_ENABLE);
9180 
9181 
9182 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9183 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9184 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9185 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9186 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9187 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9188 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9189 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9190 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9191 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9192 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9193 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9194 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9195 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9196 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9197 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9198 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9199 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9200 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9201 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9202 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9203 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9204 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9205 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9206 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9207 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9208 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9209 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9210 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9211 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9212 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9213 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9214 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9215 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9216 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9217 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9218 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9219 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9220 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9221 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9222 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9223 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9224 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9225 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9226 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9227 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9228 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9229 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9230 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9231 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9232 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9233 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9234 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9235 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9236 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9237 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9238 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9239 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9240 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9241 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9242 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9243 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9244 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9245 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9246 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9247 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9248 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9249 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9250 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9251 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9252 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9253 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9254 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9255 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9256 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9257 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9258 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9259 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9260 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9261 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9262 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9263 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9264 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9265 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9266 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9267 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9268 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9269 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9270 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9271 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9272 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9273 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9274 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9275 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9276 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9277 			/*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9278             if (!(portstatus & USB_PORT_STAT_ENABLE)
9279                 && (portstatus & USB_PORT_STAT_CONNECTION)
9280                 && (dev->children[i])) {
9281               dev_err (&hub->intf->dev, "port %i "   "disabled by hub (EMI?), " "re-enabling...", i + 1);
9282               hub_port_connect_change(hub, i, portstatus, portchange);
9283             }
9284           }
9285 
9286           if (portchange & USB_PORT_STAT_C_SUSPEND) {
9287             dev_dbg (&hub->intf->dev, "suspend change on port %d\n", i + 1);
9288             clear_port_feature(dev, i + 1,  USB_PORT_FEAT_C_SUSPEND);
9289           }
9290 
9291           if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
9292             dev_err (&hub->intf->dev,
9293               "over-current change on port %d\n", i + 1);
9294             clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_OVER_CURRENT);
9295             hub_power_on(hub);
9296           }
9297 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9298 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9299 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9300 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9301 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9302 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9303 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9304 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9305 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9306 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9307 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9308 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9309 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9310 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9311 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9312 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9313 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9314 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9315 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9316 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9317 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9318 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9319 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9320 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9321 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9322 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9323 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9324 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9325 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9326 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9327 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9328 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9329 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9330 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9331 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9332 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9333 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9334 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9335 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9336 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9337 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9338 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9339 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9340 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9341 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9342 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9343 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9344 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9345 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9346 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9347 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9348 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9349 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9350 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9351 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9352 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9353 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9354 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9355 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9356 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9357 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9358 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9359 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9360 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9361 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9362 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9363 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9364 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9365 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9366 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9367 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9368 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9369 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9370 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9371 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9372 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9373 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9374 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9375 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9376 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9377 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9378 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9379 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9380 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9381 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9382 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9383 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9384 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9385 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9386 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9387 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9388 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9389 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9390 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9391 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9392 		  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9393 
9394           if (portchange & USB_PORT_STAT_C_RESET) {
9395             dev_dbg (&hub->intf->dev, "reset change on port %d\n", i + 1);
9396             clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_RESET);
9397           }
9398     } /* end for i */
9399 
9400     if (hub_hub_status(hub, &hubstatus, &hubchange) < 0) {
9401       dev_err (&hub->intf->dev, "get_hub_status failed%s","\n");
9402     }
9403     else {
9404       if (hubchange & HUB_CHANGE_LOCAL_POWER) {
9405         dev_dbg (&hub->intf->dev, "power change%s","\n");
9406         clear_hub_feature(dev, C_HUB_LOCAL_POWER);
9407       }
9408 
9409 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9410 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9411 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9412 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9413 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9414 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9415 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9416 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9417 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9418 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9419 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9420 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9421 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9422 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9423 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9424 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9425 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9426 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9427 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9428 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9429 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9430 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9431 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9432 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9433 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9434 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9435 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9436 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9437 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9438 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9439 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9440 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9441 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9442 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9443 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9444 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9445 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9446 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9447 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9448 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9449 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9450 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9451 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9452 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9453 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9454 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9455 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9456 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9457 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9458 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9459 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9460 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9461 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9462 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9463 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9464 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9465 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9466 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9467 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9468 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9469 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9470 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9471 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9472 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9473 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9474 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9475 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9476 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9477 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9478 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9479 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9480 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9481 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9482 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9483 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9484 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9485 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9486 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9487 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9488 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9489 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9490 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9491 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9492 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9493 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9494 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9495 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9496 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9497 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9498 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9499 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9500 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9501 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9502 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9503 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9504 	  /*USB HOST USB HOST USB HOST USB HOST USB HOST USB HOST*/
9505       if (hubchange & HUB_CHANGE_OVERCURRENT) {
9506         dev_dbg (&hub->intf->dev, "overcurrent change%s","\n");
9507         wait_ms(500);
9508         clear_hub_feature(dev, C_HUB_OVER_CURRENT);
9509         hub_power_on(hub);
9510       }
9511     }
9512     up(&hub->khubd_sem);
9513         } /* end while (1) */
9514 
9515   spin_unlock_irqrestore(&hub_event_lock, flags);
9516 }
9517 
hub_poll_EX(struct s_gVar4UsbPort * pRootHub)9518 void hub_poll_EX(struct s_gVar4UsbPort *pRootHub)
9519 {
9520         USBCriticalSectionIn(pRootHub->portNum);
9521         hub_events_EX(pRootHub);
9522         USBCriticalSectionOut(pRootHub->portNum);
9523 }
9524 
9525