Changeset f58154c5 in mainline for uspace/lib/usbdev/src/hub.c
- Timestamp:
- 2011-05-18T10:59:50Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 17fc40c
- Parents:
- b2995c3 (diff), aeca5a3 (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
rb2995c3 rf58154c5 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.