Changeset d2cfe72 in mainline
- Timestamp:
- 2013-01-27T19:13:53Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d3a1ad58
- Parents:
- 70a422b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhost/src/ddf_helpers.c
r70a422b rd2cfe72 1 1 /* 2 * Copyright (c) 201 2Jan Vesely2 * Copyright (c) 2013 Jan Vesely 3 3 * All rights reserved. 4 4 * … … 77 77 } usb_dev_t; 78 78 79 /** Register endpoint interface function. 80 * @param fun DDF function. 81 * @param address USB address of the device. 82 * @param endpoint USB endpoint number to be registered. 83 * @param transfer_type Endpoint's transfer type. 84 * @param direction USB communication direction the endpoint is capable of. 85 * @param max_packet_size Maximu size of packets the endpoint accepts. 86 * @param interval Preferred timeout between communication. 87 * @return Error code. 88 */ 89 static int register_endpoint( 90 ddf_fun_t *fun, usb_endpoint_t endpoint, 91 usb_transfer_type_t transfer_type, usb_direction_t direction, 92 size_t max_packet_size, unsigned interval) 93 { 94 assert(fun); 95 hcd_t *hcd = dev_to_hcd(ddf_fun_get_dev(fun)); 96 usb_dev_t *dev = ddf_fun_data_get(fun); 97 assert(hcd); 98 assert(dev); 99 const size_t size = max_packet_size; 100 const usb_target_t target = 101 {{.address = dev->address, .endpoint = endpoint}}; 102 103 usb_log_debug("Register endpoint %d:%d %s-%s %zuB %ums.\n", 104 dev->address, endpoint, usb_str_transfer_type(transfer_type), 105 usb_str_direction(direction), max_packet_size, interval); 106 107 return hcd_add_ep(hcd, target, direction, transfer_type, 108 max_packet_size, size); 109 } 110 111 /** Unregister endpoint interface function. 112 * @param fun DDF function. 113 * @param address USB address of the endpoint. 114 * @param endpoint USB endpoint number. 115 * @param direction Communication direction of the enpdoint to unregister. 116 * @return Error code. 117 */ 118 static int unregister_endpoint( 119 ddf_fun_t *fun, usb_endpoint_t endpoint, usb_direction_t direction) 120 { 121 assert(fun); 122 hcd_t *hcd = dev_to_hcd(ddf_fun_get_dev(fun)); 123 usb_dev_t *dev = ddf_fun_data_get(fun); 124 assert(hcd); 125 assert(dev); 126 const usb_target_t target = 127 {{.address = dev->address, .endpoint = endpoint}}; 128 usb_log_debug("Unregister endpoint %d:%d %s.\n", 129 dev->address, endpoint, usb_str_direction(direction)); 130 return hcd_remove_ep(hcd, target, direction); 131 } 132 79 133 static int reserve_default_address(ddf_fun_t *fun, usb_speed_t speed) 80 134 { … … 171 225 .device_enumerate = device_enumerate, 172 226 .device_remove = device_remove, 227 .register_endpoint = register_endpoint, 228 .unregister_endpoint = unregister_endpoint, 173 229 }; 174 230 /** Standard USB RH options (RH interface) */
Note:
See TracChangeset
for help on using the changeset viewer.