Changeset d2fc1c2 in mainline for uspace/drv/uhci-hcd/iface.c
- Timestamp:
- 2011-03-08T18:18:05Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 48d2765, 8e9becf6
- Parents:
- d477734 (diff), a8e98498 (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/drv/uhci-hcd/iface.c
rd477734 rd2fc1c2 43 43 #include "utils/device_keeper.h" 44 44 45 /** Reserve default address interface function 46 * 47 * @param[in] fun DDF function that was called. 48 * @param[in] speed Speed to associate with the new default address. 49 * @return Error code. 50 */ 45 51 /*----------------------------------------------------------------------------*/ 46 52 static int reserve_default_address(ddf_fun_t *fun, usb_speed_t speed) … … 54 60 } 55 61 /*----------------------------------------------------------------------------*/ 62 /** Release default address interface function 63 * 64 * @param[in] fun DDF function that was called. 65 * @return Error code. 66 */ 56 67 static int release_default_address(ddf_fun_t *fun) 57 68 { … … 64 75 } 65 76 /*----------------------------------------------------------------------------*/ 77 /** Request address interface function 78 * 79 * @param[in] fun DDF function that was called. 80 * @param[in] speed Speed to associate with the new default address. 81 * @param[out] address Place to write a new address. 82 * @return Error code. 83 */ 66 84 static int request_address(ddf_fun_t *fun, usb_speed_t speed, 67 85 usb_address_t *address) … … 80 98 } 81 99 /*----------------------------------------------------------------------------*/ 100 /** Bind address interface function 101 * 102 * @param[in] fun DDF function that was called. 103 * @param[in] address Address of the device 104 * @param[in] handle Devman handle of the device driver. 105 * @return Error code. 106 */ 82 107 static int bind_address( 83 108 ddf_fun_t *fun, usb_address_t address, devman_handle_t handle) … … 91 116 } 92 117 /*----------------------------------------------------------------------------*/ 118 /** Release address interface function 119 * 120 * @param[in] fun DDF function that was called. 121 * @param[in] address USB address to be released. 122 * @return Error code. 123 */ 93 124 static int release_address(ddf_fun_t *fun, usb_address_t address) 94 125 { … … 101 132 } 102 133 /*----------------------------------------------------------------------------*/ 134 /** Interrupt out transaction interface function 135 * 136 * @param[in] fun DDF function that was called. 137 * @param[in] target USB device to write to. 138 * @param[in] max_packet_size maximum size of data packet the device accepts 139 * @param[in] data Source of data. 140 * @param[in] size Size of data source. 141 * @param[in] callback Function to call on transaction completion 142 * @param[in] arg Additional for callback function. 143 * @return Error code. 144 */ 103 145 static int interrupt_out(ddf_fun_t *fun, usb_target_t target, 104 146 size_t max_packet_size, void *data, size_t size, … … 114 156 115 157 batch_t *batch = batch_get(fun, target, USB_TRANSFER_INTERRUPT, 116 max_packet_size, speed, data, size, NULL, 0, NULL, callback, arg); 158 max_packet_size, speed, data, size, NULL, 0, NULL, callback, arg, 159 &hc->device_manager); 117 160 if (!batch) 118 161 return ENOMEM; … … 121 164 } 122 165 /*----------------------------------------------------------------------------*/ 166 /** Interrupt in transaction interface function 167 * 168 * @param[in] fun DDF function that was called. 169 * @param[in] target USB device to write to. 170 * @param[in] max_packet_size maximum size of data packet the device accepts 171 * @param[out] data Data destination. 172 * @param[in] size Size of data source. 173 * @param[in] callback Function to call on transaction completion 174 * @param[in] arg Additional for callback function. 175 * @return Error code. 176 */ 123 177 static int interrupt_in(ddf_fun_t *fun, usb_target_t target, 124 178 size_t max_packet_size, void *data, size_t size, … … 133 187 134 188 batch_t *batch = batch_get(fun, target, USB_TRANSFER_INTERRUPT, 135 max_packet_size, speed, data, size, NULL, 0, callback, NULL, arg); 189 max_packet_size, speed, data, size, NULL, 0, callback, NULL, arg, 190 &hc->device_manager); 136 191 if (!batch) 137 192 return ENOMEM; … … 140 195 } 141 196 /*----------------------------------------------------------------------------*/ 197 /** Bulk out transaction interface function 198 * 199 * @param[in] fun DDF function that was called. 200 * @param[in] target USB device to write to. 201 * @param[in] max_packet_size maximum size of data packet the device accepts 202 * @param[in] data Source of data. 203 * @param[in] size Size of data source. 204 * @param[in] callback Function to call on transaction completion 205 * @param[in] arg Additional for callback function. 206 * @return Error code. 207 */ 142 208 static int bulk_out(ddf_fun_t *fun, usb_target_t target, 143 209 size_t max_packet_size, void *data, size_t size, … … 153 219 154 220 batch_t *batch = batch_get(fun, target, USB_TRANSFER_BULK, 155 max_packet_size, speed, data, size, NULL, 0, NULL, callback, arg); 221 max_packet_size, speed, data, size, NULL, 0, NULL, callback, arg, 222 &hc->device_manager); 156 223 if (!batch) 157 224 return ENOMEM; … … 160 227 } 161 228 /*----------------------------------------------------------------------------*/ 229 /** Bulk in transaction interface function 230 * 231 * @param[in] fun DDF function that was called. 232 * @param[in] target USB device to write to. 233 * @param[in] max_packet_size maximum size of data packet the device accepts 234 * @param[out] data Data destination. 235 * @param[in] size Size of data source. 236 * @param[in] callback Function to call on transaction completion 237 * @param[in] arg Additional for callback function. 238 * @return Error code. 239 */ 162 240 static int bulk_in(ddf_fun_t *fun, usb_target_t target, 163 241 size_t max_packet_size, void *data, size_t size, … … 172 250 173 251 batch_t *batch = batch_get(fun, target, USB_TRANSFER_BULK, 174 max_packet_size, speed, data, size, NULL, 0, callback, NULL, arg); 252 max_packet_size, speed, data, size, NULL, 0, callback, NULL, arg, 253 &hc->device_manager); 175 254 if (!batch) 176 255 return ENOMEM; … … 179 258 } 180 259 /*----------------------------------------------------------------------------*/ 260 /** Control write transaction interface function 261 * 262 * @param[in] fun DDF function that was called. 263 * @param[in] target USB device to write to. 264 * @param[in] max_packet_size maximum size of data packet the device accepts. 265 * @param[in] setup_data Data to send with SETUP packet. 266 * @param[in] setup_size Size of data to send with SETUP packet (should be 8B). 267 * @param[in] data Source of data. 268 * @param[in] size Size of data source. 269 * @param[in] callback Function to call on transaction completion. 270 * @param[in] arg Additional for callback function. 271 * @return Error code. 272 */ 181 273 static int control_write(ddf_fun_t *fun, usb_target_t target, 182 274 size_t max_packet_size, … … 191 283 target.address, target.endpoint, size, max_packet_size); 192 284 285 if (setup_size != 8) 286 return EINVAL; 287 193 288 batch_t *batch = batch_get(fun, target, USB_TRANSFER_CONTROL, 194 289 max_packet_size, speed, data, size, setup_data, setup_size, 195 NULL, callback, arg); 196 if (!batch) 197 return ENOMEM; 290 NULL, callback, arg, &hc->device_manager); 291 if (!batch) 292 return ENOMEM; 293 device_keeper_reset_if_need(&hc->device_manager, target, setup_data); 198 294 batch_control_write(batch); 199 295 return EOK; 200 296 } 201 297 /*----------------------------------------------------------------------------*/ 298 /** Control read transaction interface function 299 * 300 * @param[in] fun DDF function that was called. 301 * @param[in] target USB device to write to. 302 * @param[in] max_packet_size maximum size of data packet the device accepts. 303 * @param[in] setup_data Data to send with SETUP packet. 304 * @param[in] setup_size Size of data to send with SETUP packet (should be 8B). 305 * @param[out] data Source of data. 306 * @param[in] size Size of data source. 307 * @param[in] callback Function to call on transaction completion. 308 * @param[in] arg Additional for callback function. 309 * @return Error code. 310 */ 202 311 static int control_read(ddf_fun_t *fun, usb_target_t target, 203 312 size_t max_packet_size, … … 214 323 batch_t *batch = batch_get(fun, target, USB_TRANSFER_CONTROL, 215 324 max_packet_size, speed, data, size, setup_data, setup_size, callback, 216 NULL, arg );325 NULL, arg, &hc->device_manager); 217 326 if (!batch) 218 327 return ENOMEM;
Note:
See TracChangeset
for help on using the changeset viewer.