Changeset 4fe3b6d in mainline for uspace/lib/usbdev/src/hub.c
- Timestamp:
- 2011-05-20T11:07:00Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8bb61e6
- Parents:
- 3476be8 (diff), 7941bd6 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbdev/src/hub.c
r3476be8 r4fe3b6d 27 27 */ 28 28 29 /** @addtogroup libusb 29 /** @addtogroup libusbdev 30 30 * @{ 31 31 */ … … 33 33 * Functions needed by hub drivers. 34 34 */ 35 #include <usb/ hub.h>36 #include <usb/ pipes.h>37 #include <usb/ request.h>38 #include <usb/ recognise.h>35 #include <usb/dev/hub.h> 36 #include <usb/dev/pipes.h> 37 #include <usb/dev/request.h> 38 #include <usb/dev/recognise.h> 39 39 #include <usbhc_iface.h> 40 40 #include <errno.h> 41 41 #include <assert.h> 42 42 #include <usb/debug.h> 43 #include <time.h> 43 44 44 45 /** How much time to wait between attempts to register endpoint 0:0. … … 218 219 219 220 int rc; 221 struct timeval start_time; 222 223 rc = gettimeofday(&start_time, NULL); 224 if (rc != EOK) { 225 return rc; 226 } 220 227 221 228 rc = usb_hc_connection_open(&hc_conn); … … 264 271 } 265 272 } while (rc != EOK); 273 struct timeval end_time; 274 275 rc = gettimeofday(&end_time, NULL); 276 if (rc != EOK) { 277 goto leave_release_default_address; 278 } 279 280 /* According to the USB spec part 9.1.2 host allows 100ms time for 281 * the insertion process to complete. According to 7.1.7.1 this is the 282 * time between attach detected and port reset. However, the setup done 283 * above might use much of this time so we should only wait to fill 284 * up the 100ms quota*/ 285 suseconds_t elapsed = tv_sub(&end_time, &start_time); 286 if (elapsed < 100000) { 287 async_usleep(100000 - elapsed); 288 } 266 289 267 290 /* … … 273 296 goto leave_release_default_address; 274 297 } 298 /* USB spec 7.1.7.1: The USB System Software guarantees a minimum of 299 * 10ms for reset recovery. Device response to any bus transactions 300 * addressed to the default device address during the reset recovery 301 * time is undefined. 302 */ 303 async_usleep(10000); 275 304 276 305 rc = usb_pipe_probe_default_control(&ctrl_pipe);
Note:
See TracChangeset
for help on using the changeset viewer.