Changeset 5a6cc679 in mainline for uspace/drv/bus/usb/uhci
- Timestamp:
- 2018-01-31T02:21:24Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a0a9cc2
- Parents:
- 132ab5d1
- Location:
- uspace/drv/bus/usb/uhci
- Files:
-
- 9 edited
-
hc.c (modified) (12 diffs)
-
hc.h (modified) (1 diff)
-
hw_struct/transfer_descriptor.c (modified) (1 diff)
-
hw_struct/transfer_descriptor.h (modified) (1 diff)
-
main.c (modified) (2 diffs)
-
transfer_list.c (modified) (1 diff)
-
transfer_list.h (modified) (1 diff)
-
uhci_rh.c (modified) (7 diffs)
-
uhci_rh.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/uhci/hc.c
r132ab5d1 r5a6cc679 97 97 98 98 static void hc_init_hw(const hc_t *instance); 99 static int hc_init_mem_structures(hc_t *instance);100 static int hc_init_transfer_lists(hc_t *instance);101 102 static int hc_debug_checker(void *arg);99 static errno_t hc_init_mem_structures(hc_t *instance); 100 static errno_t hc_init_transfer_lists(hc_t *instance); 101 102 static errno_t hc_debug_checker(void *arg); 103 103 104 104 … … 110 110 * @return Error code. 111 111 */ 112 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq)112 errno_t hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq) 113 113 { 114 114 assert(code); … … 207 207 * interrupt fibrils. 208 208 */ 209 int hc_add(hc_device_t *hcd, const hw_res_list_parsed_t *hw_res)209 errno_t hc_add(hc_device_t *hcd, const hw_res_list_parsed_t *hw_res) 210 210 { 211 211 hc_t *instance = hcd_to_hc(hcd); … … 218 218 219 219 /* allow access to hc control registers */ 220 int ret = pio_enable_range(&hw_res->io_ranges.ranges[0],220 errno_t ret = pio_enable_range(&hw_res->io_ranges.ranges[0], 221 221 (void **) &instance->registers); 222 222 if (ret != EOK) { … … 327 327 } 328 328 329 static int endpoint_register(endpoint_t *ep)329 static errno_t endpoint_register(endpoint_t *ep) 330 330 { 331 331 hc_t * const hc = bus_to_hc(endpoint_get_bus(ep)); 332 332 333 const int err = usb2_bus_endpoint_register(&hc->bus_helper, ep);333 const errno_t err = usb2_bus_endpoint_register(&hc->bus_helper, ep); 334 334 if (err) 335 335 return err; … … 449 449 * - frame list page (needs to be one UHCI hw accessible 4K page) 450 450 */ 451 int hc_init_mem_structures(hc_t *instance)451 errno_t hc_init_mem_structures(hc_t *instance) 452 452 { 453 453 assert(instance); … … 468 468 469 469 /* Init transfer lists */ 470 int ret = hc_init_transfer_lists(instance);470 errno_t ret = hc_init_transfer_lists(instance); 471 471 if (ret != EOK) { 472 472 usb_log_error("Failed to initialize transfer lists."); … … 498 498 * USB scheduling. Sets pointer table for quick access. 499 499 */ 500 int hc_init_transfer_lists(hc_t *instance)500 errno_t hc_init_transfer_lists(hc_t *instance) 501 501 { 502 502 assert(instance); 503 503 #define SETUP_TRANSFER_LIST(type, name) \ 504 504 do { \ 505 int ret = transfer_list_init(&instance->transfers_##type, name); \505 errno_t ret = transfer_list_init(&instance->transfers_##type, name); \ 506 506 if (ret != EOK) { \ 507 507 usb_log_error("Failed to setup %s transfer list: %s.", \ … … 550 550 } 551 551 552 static int hc_status(bus_t *bus, uint32_t *status)552 static errno_t hc_status(bus_t *bus, uint32_t *status) 553 553 { 554 554 hc_t *instance = bus_to_hc(bus); … … 571 571 * @return Error code 572 572 */ 573 static int hc_schedule(usb_transfer_batch_t *batch)573 static errno_t hc_schedule(usb_transfer_batch_t *batch) 574 574 { 575 575 uhci_transfer_batch_t *uhci_batch = uhci_transfer_batch_get(batch); … … 586 586 return ENOTSUP; 587 587 588 int err;588 errno_t err; 589 589 if ((err = uhci_transfer_batch_prepare(uhci_batch))) 590 590 return err; … … 598 598 * @return EOK (should never return) 599 599 */ 600 int hc_debug_checker(void *arg)600 errno_t hc_debug_checker(void *arg) 601 601 { 602 602 hc_t *instance = arg; -
uspace/drv/bus/usb/uhci/hc.h
r132ab5d1 r5a6cc679 157 157 int hc_unschedule_batch(usb_transfer_batch_t *); 158 158 159 extern int hc_add(hc_device_t *, const hw_res_list_parsed_t *);160 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *);161 extern int hc_start(hc_device_t *);162 extern int hc_setup_roothub(hc_device_t *);163 extern int hc_gone(hc_device_t *);159 extern errno_t hc_add(hc_device_t *, const hw_res_list_parsed_t *); 160 extern errno_t hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *); 161 extern errno_t hc_start(hc_device_t *); 162 extern errno_t hc_setup_roothub(hc_device_t *); 163 extern errno_t hc_gone(hc_device_t *); 164 164 165 165 #endif -
uspace/drv/bus/usb/uhci/hw_struct/transfer_descriptor.c
r132ab5d1 r5a6cc679 119 119 * @return Error code. 120 120 */ 121 int td_status(const td_t *instance)121 errno_t td_status(const td_t *instance) 122 122 { 123 123 assert(instance); -
uspace/drv/bus/usb/uhci/hw_struct/transfer_descriptor.h
r132ab5d1 r5a6cc679 102 102 const void *buffer, const td_t *next); 103 103 104 int td_status(const td_t *instance);104 errno_t td_status(const td_t *instance); 105 105 106 106 void td_print_status(const td_t *instance); -
uspace/drv/bus/usb/uhci/main.c
r132ab5d1 r5a6cc679 49 49 #define NAME "uhci" 50 50 51 static int disable_legacy(hc_device_t *);51 static errno_t disable_legacy(hc_device_t *); 52 52 53 53 static const hc_driver_t uhci_driver = { … … 67 67 * @return Error code. 68 68 */ 69 static int disable_legacy(hc_device_t *hcd)69 static errno_t disable_legacy(hc_device_t *hcd) 70 70 { 71 71 assert(hcd); -
uspace/drv/bus/usb/uhci/transfer_list.c
r132ab5d1 r5a6cc679 55 55 * Allocates memory for internal qh_t structure. 56 56 */ 57 int transfer_list_init(transfer_list_t *instance, const char *name)57 errno_t transfer_list_init(transfer_list_t *instance, const char *name) 58 58 { 59 59 assert(instance); -
uspace/drv/bus/usb/uhci/transfer_list.h
r132ab5d1 r5a6cc679 57 57 58 58 void transfer_list_fini(transfer_list_t *); 59 int transfer_list_init(transfer_list_t *, const char *);59 errno_t transfer_list_init(transfer_list_t *, const char *); 60 60 void transfer_list_set_next(transfer_list_t *, transfer_list_t *); 61 int transfer_list_add_batch(transfer_list_t *, uhci_transfer_batch_t *);61 errno_t transfer_list_add_batch(transfer_list_t *, uhci_transfer_batch_t *); 62 62 void transfer_list_remove_batch(transfer_list_t *, uhci_transfer_batch_t *); 63 63 void transfer_list_check_finished(transfer_list_t *); -
uspace/drv/bus/usb/uhci/uhci_rh.c
r132ab5d1 r5a6cc679 79 79 * @return Error code, EOK on success. 80 80 */ 81 int uhci_rh_init(uhci_rh_t *instance, ioport16_t *ports, const char *name)81 errno_t uhci_rh_init(uhci_rh_t *instance, ioport16_t *ports, const char *name) 82 82 { 83 83 assert(instance); … … 99 99 * not have to be. 100 100 */ 101 int uhci_rh_schedule(uhci_rh_t *instance, usb_transfer_batch_t *batch)101 errno_t uhci_rh_schedule(uhci_rh_t *instance, usb_transfer_batch_t *batch) 102 102 { 103 103 assert(instance); … … 189 189 * it is usefull for debuging purposes only. 190 190 */ 191 static int req_get_port_state(usbvirt_device_t *device,191 static errno_t req_get_port_state(usbvirt_device_t *device, 192 192 const usb_device_request_setup_packet_t *setup_packet, 193 193 uint8_t *data, size_t *act_size) … … 224 224 * @note: reset change status needs to be handled in sw. 225 225 */ 226 static int req_get_port_status(usbvirt_device_t *device,226 static errno_t req_get_port_status(usbvirt_device_t *device, 227 227 const usb_device_request_setup_packet_t *setup_packet, 228 228 uint8_t *data, size_t *act_size) … … 263 263 * @return Error code. 264 264 */ 265 static int req_clear_port_feature(usbvirt_device_t *device,265 static errno_t req_clear_port_feature(usbvirt_device_t *device, 266 266 const usb_device_request_setup_packet_t *setup_packet, 267 267 uint8_t *data, size_t *act_size) … … 336 336 * @return Error code. 337 337 */ 338 static int req_set_port_feature(usbvirt_device_t *device,338 static errno_t req_set_port_feature(usbvirt_device_t *device, 339 339 const usb_device_request_setup_packet_t *setup_packet, 340 340 uint8_t *data, size_t *act_size) … … 398 398 * only need 1 byte. 399 399 */ 400 static int req_status_change_handler(usbvirt_device_t *device,400 static errno_t req_status_change_handler(usbvirt_device_t *device, 401 401 usb_endpoint_t endpoint, usb_transfer_type_t tr_type, 402 402 void *buffer, size_t buffer_size, size_t *actual_size) -
uspace/drv/bus/usb/uhci/uhci_rh.h
r132ab5d1 r5a6cc679 56 56 } uhci_rh_t; 57 57 58 int uhci_rh_init(uhci_rh_t *instance, ioport16_t *ports, const char *name);59 int uhci_rh_schedule(uhci_rh_t *instance, usb_transfer_batch_t *batch);58 errno_t uhci_rh_init(uhci_rh_t *instance, ioport16_t *ports, const char *name); 59 errno_t uhci_rh_schedule(uhci_rh_t *instance, usb_transfer_batch_t *batch); 60 60 61 61 /** Get UHCI rh address.
Note:
See TracChangeset
for help on using the changeset viewer.
