Changeset 5a6cc679 in mainline for uspace/drv/bus/usb/ehci
- 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/ehci
- Files:
-
- 11 edited
-
ehci_bus.h (modified) (1 diff)
-
ehci_rh.c (modified) (12 diffs)
-
ehci_rh.h (modified) (1 diff)
-
endpoint_list.c (modified) (1 diff)
-
endpoint_list.h (modified) (1 diff)
-
hc.c (modified) (7 diffs)
-
hc.h (modified) (1 diff)
-
hw_struct/transfer_descriptor.c (modified) (1 diff)
-
hw_struct/transfer_descriptor.h (modified) (1 diff)
-
res.c (modified) (4 diffs)
-
res.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/ehci_bus.h
r132ab5d1 r5a6cc679 72 72 void ehci_bus_prepare_ops(void); 73 73 74 int ehci_bus_init(ehci_bus_t *, hc_t *);74 errno_t ehci_bus_init(ehci_bus_t *, hc_t *); 75 75 76 76 /** Get and convert assigned ehci_endpoint_t structure -
uspace/drv/bus/usb/ehci/ehci_rh.c
r132ab5d1 r5a6cc679 99 99 * initializes internal virtual hub. 100 100 */ 101 int ehci_rh_init(ehci_rh_t *instance, ehci_caps_regs_t *caps, ehci_regs_t *regs,101 errno_t ehci_rh_init(ehci_rh_t *instance, ehci_caps_regs_t *caps, ehci_regs_t *regs, 102 102 fibril_mutex_t *guard, const char *name) 103 103 { … … 141 141 * status change requests might be postponed until there is something to report. 142 142 */ 143 int ehci_rh_schedule(ehci_rh_t *instance, usb_transfer_batch_t *batch)143 errno_t ehci_rh_schedule(ehci_rh_t *instance, usb_transfer_batch_t *batch) 144 144 { 145 145 assert(instance); … … 184 184 * processing of a postponed request. 185 185 */ 186 int ehci_rh_interrupt(ehci_rh_t *instance)186 errno_t ehci_rh_interrupt(ehci_rh_t *instance) 187 187 { 188 188 fibril_mutex_lock(instance->guard); … … 231 231 * @return Error code. 232 232 */ 233 static int req_get_status(usbvirt_device_t *device,233 static errno_t req_get_status(usbvirt_device_t *device, 234 234 const usb_device_request_setup_packet_t *setup_packet, 235 235 uint8_t *data, size_t *act_size) … … 254 254 * @return Error code. 255 255 */ 256 static int req_clear_hub_feature(usbvirt_device_t *device,256 static errno_t req_clear_hub_feature(usbvirt_device_t *device, 257 257 const usb_device_request_setup_packet_t *setup_packet, 258 258 uint8_t *data, size_t *act_size) … … 282 282 * @return Error code. 283 283 */ 284 static int req_get_port_status(usbvirt_device_t *device,284 static errno_t req_get_port_status(usbvirt_device_t *device, 285 285 const usb_device_request_setup_packet_t *setup_packet, 286 286 uint8_t *data, size_t *act_size) … … 325 325 } ehci_rh_job_t; 326 326 327 static int stop_reset(void *arg)327 static errno_t stop_reset(void *arg) 328 328 { 329 329 ehci_rh_job_t *job = arg; … … 354 354 } 355 355 356 static int stop_resume(void *arg)356 static errno_t stop_resume(void *arg) 357 357 { 358 358 ehci_rh_job_t *job = arg; … … 367 367 } 368 368 369 static int delayed_job(int (*func)(void*), ehci_rh_t *rh, unsigned port)369 static errno_t delayed_job(errno_t (*func)(void*), ehci_rh_t *rh, unsigned port) 370 370 { 371 371 ehci_rh_job_t *job = malloc(sizeof(*job)); … … 393 393 * @return Error code. 394 394 */ 395 static int req_clear_port_feature(usbvirt_device_t *device,395 static errno_t req_clear_port_feature(usbvirt_device_t *device, 396 396 const usb_device_request_setup_packet_t *setup_packet, 397 397 uint8_t *data, size_t *act_size) … … 472 472 * @return Error code. 473 473 */ 474 static int req_set_port_feature(usbvirt_device_t *device,474 static errno_t req_set_port_feature(usbvirt_device_t *device, 475 475 const usb_device_request_setup_packet_t *setup_packet, 476 476 uint8_t *data, size_t *act_size) … … 521 521 * only need 1 byte. 522 522 */ 523 static int req_status_change_handler(usbvirt_device_t *device,523 static errno_t req_status_change_handler(usbvirt_device_t *device, 524 524 usb_endpoint_t endpoint, usb_transfer_type_t tr_type, 525 525 void *buffer, size_t buffer_size, size_t *actual_size) -
uspace/drv/bus/usb/ehci/ehci_rh.h
r132ab5d1 r5a6cc679 79 79 } ehci_rh_t; 80 80 81 int ehci_rh_init(ehci_rh_t *instance, ehci_caps_regs_t *caps, ehci_regs_t *regs,81 errno_t ehci_rh_init(ehci_rh_t *instance, ehci_caps_regs_t *caps, ehci_regs_t *regs, 82 82 fibril_mutex_t *guard, const char *name); 83 int ehci_rh_schedule(ehci_rh_t *instance, usb_transfer_batch_t *batch);84 int ehci_rh_interrupt(ehci_rh_t *instance);83 errno_t ehci_rh_schedule(ehci_rh_t *instance, usb_transfer_batch_t *batch); 84 errno_t ehci_rh_interrupt(ehci_rh_t *instance); 85 85 86 86 /** Get EHCI rh address. -
uspace/drv/bus/usb/ehci/endpoint_list.c
r132ab5d1 r5a6cc679 50 50 * Allocates memory for internal ed_t structure. 51 51 */ 52 int endpoint_list_init(endpoint_list_t *instance, const char *name)52 errno_t endpoint_list_init(endpoint_list_t *instance, const char *name) 53 53 { 54 54 assert(instance); -
uspace/drv/bus/usb/ehci/endpoint_list.h
r132ab5d1 r5a6cc679 68 68 } 69 69 70 int endpoint_list_init(endpoint_list_t *instance, const char *name);70 errno_t endpoint_list_init(endpoint_list_t *instance, const char *name); 71 71 void endpoint_list_chain(endpoint_list_t *instance, const endpoint_list_t *next); 72 72 void endpoint_list_append_ep(endpoint_list_t *instance, ehci_endpoint_t *ep); -
uspace/drv/bus/usb/ehci/hc.c
r132ab5d1 r5a6cc679 89 89 }; 90 90 91 static int hc_init_memory(hc_t *instance);91 static errno_t hc_init_memory(hc_t *instance); 92 92 93 93 /** Generate IRQ code. … … 99 99 * @return Error code. 100 100 */ 101 int hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq)101 errno_t hc_gen_irq_code(irq_code_t *code, hc_device_t *hcd, const hw_res_list_parsed_t *hw_res, int *irq) 102 102 { 103 103 assert(code); … … 151 151 * @return Error code 152 152 */ 153 int hc_add(hc_device_t *hcd, const hw_res_list_parsed_t *hw_res)153 errno_t hc_add(hc_device_t *hcd, const hw_res_list_parsed_t *hw_res) 154 154 { 155 155 hc_t *instance = hcd_to_hc(hcd); … … 160 160 return EINVAL; 161 161 162 int ret = pio_enable_range(&hw_res->mem_ranges.ranges[0],162 errno_t ret = pio_enable_range(&hw_res->mem_ranges.ranges[0], 163 163 (void **)&instance->caps); 164 164 if (ret != EOK) { … … 265 265 } 266 266 267 int ehci_hc_status(bus_t *bus_base, uint32_t *status)267 errno_t ehci_hc_status(bus_t *bus_base, uint32_t *status) 268 268 { 269 269 assert(bus_base); … … 289 289 * @return Error code. 290 290 */ 291 int ehci_hc_schedule(usb_transfer_batch_t *batch)291 errno_t ehci_hc_schedule(usb_transfer_batch_t *batch) 292 292 { 293 293 assert(batch); … … 477 477 * @return Error code. 478 478 */ 479 int hc_init_memory(hc_t *instance)479 errno_t hc_init_memory(hc_t *instance) 480 480 { 481 481 assert(instance); 482 482 usb_log_debug2("HC(%p): Initializing Async list(%p).", instance, 483 483 &instance->async_list); 484 int ret = endpoint_list_init(&instance->async_list, "ASYNC");484 errno_t ret = endpoint_list_init(&instance->async_list, "ASYNC"); 485 485 if (ret != EOK) { 486 486 usb_log_error("HC(%p): Failed to setup ASYNC list: %s", -
uspace/drv/bus/usb/ehci/hc.h
r132ab5d1 r5a6cc679 100 100 101 101 /* Boottime operations */ 102 extern int hc_add(hc_device_t *, const hw_res_list_parsed_t *);103 extern int hc_start(hc_device_t *);104 extern int hc_setup_roothub(hc_device_t *);105 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *);106 extern int hc_gone(hc_device_t *);102 extern errno_t hc_add(hc_device_t *, const hw_res_list_parsed_t *); 103 extern errno_t hc_start(hc_device_t *); 104 extern errno_t hc_setup_roothub(hc_device_t *); 105 extern errno_t hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *); 106 extern errno_t hc_gone(hc_device_t *); 107 107 108 108 /** Runtime operations */ 109 109 extern void ehci_hc_interrupt(bus_t *, uint32_t); 110 extern int ehci_hc_status(bus_t *, uint32_t *);111 extern int ehci_hc_schedule(usb_transfer_batch_t *);110 extern errno_t ehci_hc_status(bus_t *, uint32_t *); 111 extern errno_t ehci_hc_schedule(usb_transfer_batch_t *); 112 112 113 113 #endif -
uspace/drv/bus/usb/ehci/hw_struct/transfer_descriptor.c
r132ab5d1 r5a6cc679 44 44 45 45 46 int td_error(const td_t *td)46 errno_t td_error(const td_t *td) 47 47 { 48 48 assert(td); -
uspace/drv/bus/usb/ehci/hw_struct/transfer_descriptor.h
r132ab5d1 r5a6cc679 97 97 } 98 98 99 int td_error(const td_t *td);99 errno_t td_error(const td_t *td); 100 100 101 101 void td_init(td_t *td, uintptr_t next_phys, uintptr_t buf, usb_direction_t dir, -
uspace/drv/bus/usb/ehci/res.c
r132ab5d1 r5a6cc679 63 63 * @return Error code. 64 64 */ 65 static int disable_extended_caps(async_sess_t *parent_sess, unsigned eecp)65 static errno_t disable_extended_caps(async_sess_t *parent_sess, unsigned eecp) 66 66 { 67 67 /* nothing to do */ … … 71 71 /* Read the first EEC. i.e. Legacy Support register */ 72 72 uint32_t usblegsup; 73 int ret = pci_config_space_read_32(parent_sess,73 errno_t ret = pci_config_space_read_32(parent_sess, 74 74 eecp + USBLEGSUP_OFFSET, &usblegsup); 75 75 if (ret != EOK) { … … 173 173 } 174 174 175 int disable_legacy(hc_device_t *hcd)175 errno_t disable_legacy(hc_device_t *hcd) 176 176 { 177 177 hc_t *hc = hcd_to_hc(hcd); … … 182 182 183 183 usb_log_debug("Disabling EHCI legacy support."); 184 185 184 186 185 const uint32_t hcc_params = EHCI_RD(hc->caps->hccparams); -
uspace/drv/bus/usb/ehci/res.h
r132ab5d1 r5a6cc679 38 38 typedef struct hc_device hc_device_t; 39 39 40 extern int disable_legacy(hc_device_t *);40 extern errno_t disable_legacy(hc_device_t *); 41 41 42 42 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
