Changeset 46e078a in mainline for uspace/drv/usbhub
- Timestamp:
- 2011-04-09T23:50:05Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1c258d1
- Parents:
- 0748854
- Location:
- uspace/drv/usbhub
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhub/ports.c
r0748854 r46e078a 181 181 */ 182 182 } else { 183 usb_log_warning("this is strange, disconnected device had " 184 "no address\n"); 185 //device was disconnected before it`s port was reset - 186 //return default address 187 usb_hub_release_default_address(hub); 183 // TODO: is this really reason to print a warning? 184 usb_log_warning("Device removed before being registered.\n"); 185 186 /* 187 * Device was removed before port reset completed. 188 * We will announce a failed port reset to unblock the 189 * port reset callback from new device wrapper. 190 */ 191 usb_hub_port_t *the_port = hub->ports + port; 192 fibril_mutex_lock(&the_port->reset_mutex); 193 the_port->reset_completed = true; 194 the_port->reset_okay = false; 195 fibril_condvar_broadcast(&the_port->reset_cv); 196 fibril_mutex_unlock(&the_port->reset_mutex); 188 197 } 189 198 } … … 207 216 fibril_mutex_lock(&the_port->reset_mutex); 208 217 the_port->reset_completed = true; 218 the_port->reset_okay = true; 209 219 fibril_condvar_broadcast(&the_port->reset_cv); 210 220 fibril_mutex_unlock(&the_port->reset_mutex); … … 319 329 } 320 330 321 return EOK; 331 if (my_port->reset_okay) { 332 return EOK; 333 } else { 334 return ESTALL; 335 } 322 336 } 323 337 -
uspace/drv/usbhub/ports.h
r0748854 r46e078a 51 51 */ 52 52 bool reset_completed; 53 /** Whether to announce the port reset as successful. */ 54 bool reset_okay; 53 55 54 56 /** Information about attached device. */ -
uspace/drv/usbhub/usbhub.c
r0748854 r46e078a 177 177 178 178 return true; 179 }180 181 /**182 * release default address used by given hub183 *184 * Also unsets hub->is_default_address_used. Convenience wrapper function.185 * @note hub->connection MUST be open for communication186 * @param hub hub representation187 * @return error code188 */189 int usb_hub_release_default_address(usb_hub_info_t * hub) {190 int opResult = usb_hc_release_default_address(&hub->connection);191 if (opResult != EOK) {192 usb_log_error("could not release default address, errno %d\n",193 opResult);194 return opResult;195 }196 hub->is_default_address_used = false;197 return EOK;198 179 } 199 180 -
uspace/drv/usbhub/usbhub.h
r0748854 r46e078a 98 98 uint8_t *change_bitmap, size_t change_bitmap_size, void *arg); 99 99 100 int usb_hub_release_default_address(usb_hub_info_t * hub);101 102 100 #endif 103 101 /**
Note:
See TracChangeset
for help on using the changeset viewer.
