Changeset 2a5a7711 in mainline
- Timestamp:
- 2013-02-08T16:08:51Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 603a0a4
- Parents:
- 81da273b
- Location:
- uspace
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/uhci/uhci_rh.c
r81da273b r2a5a7711 78 78 instance->reset_changed[1] = false; 79 79 return virthub_base_init(&instance->base, name, &ops, instance, 80 NULL, &hub_descriptor.header );80 NULL, &hub_descriptor.header, HUB_STATUS_CHANGE_PIPE, 2); 81 81 } 82 82 … … 376 376 377 377 /** UHCI root hub request handlers */ 378 static usbvirt_control_request_handler_t control_transfer_handlers[] = {378 static const usbvirt_control_request_handler_t control_transfer_handlers[] = { 379 379 { 380 380 STD_REQ_IN(USB_REQUEST_RECIPIENT_DEVICE, USB_DEVREQ_GET_DESCRIPTOR), -
uspace/lib/usbvirt/include/usbvirt/virthub_base.h
r81da273b r2a5a7711 42 42 enum { 43 43 VIRTHUB_EXTR_DESC = 3, 44 HUB_STATUS_CHANGE_PIPE = 1,45 44 }; 46 45 47 46 typedef struct { 48 47 usb_standard_configuration_descriptor_t config_descriptor; 48 usb_standard_endpoint_descriptor_t endpoint_descriptor; 49 49 usbvirt_device_configuration_extras_t extra[VIRTHUB_EXTR_DESC]; 50 50 usbvirt_device_configuration_t configuration; … … 59 59 const char *name, usbvirt_device_ops_t *ops, void *data, 60 60 const usb_standard_device_descriptor_t *device_desc, 61 const usb_hub_descriptor_header_t *hub_desc); 61 const usb_hub_descriptor_header_t *hub_desc, 62 usb_endpoint_t ep, unsigned port_count); 62 63 63 64 usb_address_t virthub_base_get_address(virthub_base_t *instance); -
uspace/lib/usbvirt/src/virthub_base.c
r81da273b r2a5a7711 42 42 extern const usb_standard_device_descriptor_t virthub_device_descriptor; 43 43 extern const usb_standard_configuration_descriptor_t virthub_configuration_descriptor_without_hub_size; 44 extern const usb_standard_endpoint_descriptor_t virthub_endpoint_descriptor; 44 45 extern const usbvirt_device_configuration_extras_t virthub_interface_descriptor_ex; 45 extern const usbvirt_device_configuration_extras_t virthub_endpoint_descriptor_ex;46 46 47 47 void *virthub_get_data(usbvirt_device_t *dev) … … 53 53 } 54 54 55 int virthub_base_init(virthub_base_t *instance, 56 const char *name,usbvirt_device_ops_t *ops, void *data,55 int virthub_base_init(virthub_base_t *instance, const char *name, 56 usbvirt_device_ops_t *ops, void *data, 57 57 const usb_standard_device_descriptor_t *device_desc, 58 const usb_hub_descriptor_header_t *hub_desc) 58 const usb_hub_descriptor_header_t *hub_desc, 59 usb_endpoint_t ep, unsigned port_count) 59 60 { 60 61 assert(instance); 61 62 assert(hub_desc); 62 63 assert(name); 64 65 if (!usb_endpoint_is_valid(ep) || (ep == USB_ENDPOINT_DEFAULT_CONTROL)) 66 return EINVAL; 63 67 64 68 instance->config_descriptor = 65 69 virthub_configuration_descriptor_without_hub_size; 66 70 instance->config_descriptor.total_length += hub_desc->length; 71 72 instance->endpoint_descriptor = virthub_endpoint_descriptor; 73 instance->endpoint_descriptor.endpoint_address = 128 | ep; 74 instance->endpoint_descriptor.max_packet_size = 75 (1 + port_count + 7) / 8; 67 76 68 77 instance->descriptors.device = … … 78 87 instance->extra[1].data = (void *)hub_desc; 79 88 instance->extra[1].length = hub_desc->length; 80 instance->extra[2] = virthub_endpoint_descriptor_ex; 89 instance->extra[2].data = (void*)&instance->endpoint_descriptor; 90 instance->extra[2].length = sizeof(instance->endpoint_descriptor); 81 91 82 92 instance->device.ops = ops; -
uspace/lib/usbvirt/src/virthub_descriptors.c
r81da273b r2a5a7711 74 74 .length = sizeof(usb_standard_endpoint_descriptor_t), 75 75 .descriptor_type = USB_DESCTYPE_ENDPOINT, 76 .endpoint_address = HUB_STATUS_CHANGE_PIPE| 128,76 .endpoint_address = 1 | 128, 77 77 .attributes = USB_TRANSFER_INTERRUPT, 78 78 .max_packet_size = 8, … … 101 101 }; 102 102 103 const usbvirt_device_configuration_extras_t virthub_endpoint_descriptor_ex = {104 .data = (uint8_t *) &virthub_endpoint_descriptor,105 .length = sizeof(virthub_endpoint_descriptor),106 };107 108 103 109 104 /**
Note:
See TracChangeset
for help on using the changeset viewer.