Changeset c01cd32 in mainline for uspace/drv/uhci-hcd/hc.c
- Timestamp:
- 2011-03-21T22:42:47Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 33fbe95
- Parents:
- c56c5b5b
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/hc.c
rc56c5b5b rc01cd32 42 42 #include <usb_iface.h> 43 43 44 #include " uhci_hc.h"44 #include "hc.h" 45 45 46 46 static irq_cmd_t uhci_cmds[] = { … … 60 60 }; 61 61 /*----------------------------------------------------------------------------*/ 62 static int uhci_hc_init_transfer_lists(uhci_hc_t *instance);63 static int uhci_hc_init_mem_structures(uhci_hc_t *instance);64 static void uhci_hc_init_hw(uhci_hc_t *instance);65 66 static int uhci_hc_interrupt_emulator(void *arg);67 static int uhci_hc_debug_checker(void *arg);62 static int hc_init_transfer_lists(hc_t *instance); 63 static int hc_init_mem_structures(hc_t *instance); 64 static void hc_init_hw(hc_t *instance); 65 66 static int hc_interrupt_emulator(void *arg); 67 static int hc_debug_checker(void *arg); 68 68 69 69 static bool allowed_usb_packet( … … 82 82 * interrupt fibrils. 83 83 */ 84 int uhci_hc_init(uhci_hc_t *instance, ddf_fun_t *fun,84 int hc_init(hc_t *instance, ddf_fun_t *fun, 85 85 void *regs, size_t reg_size, bool interrupts) 86 86 { … … 112 112 io, reg_size); 113 113 114 ret = uhci_hc_init_mem_structures(instance);114 ret = hc_init_mem_structures(instance); 115 115 CHECK_RET_DEST_FUN_RETURN(ret, 116 116 "Failed to initialize UHCI memory structures.\n"); 117 117 118 uhci_hc_init_hw(instance);118 hc_init_hw(instance); 119 119 if (!interrupts) { 120 120 instance->cleaner = 121 fibril_create( uhci_hc_interrupt_emulator, instance);121 fibril_create(hc_interrupt_emulator, instance); 122 122 fibril_add_ready(instance->cleaner); 123 123 } else { … … 126 126 127 127 instance->debug_checker = 128 fibril_create( uhci_hc_debug_checker, instance);128 fibril_create(hc_debug_checker, instance); 129 129 // fibril_add_ready(instance->debug_checker); 130 130 … … 138 138 * For magic values see UHCI Design Guide 139 139 */ 140 void uhci_hc_init_hw(uhci_hc_t *instance)140 void hc_init_hw(hc_t *instance) 141 141 { 142 142 assert(instance); … … 186 186 * - frame list page (needs to be one UHCI hw accessible 4K page) 187 187 */ 188 int uhci_hc_init_mem_structures(uhci_hc_t *instance)188 int hc_init_mem_structures(hc_t *instance) 189 189 { 190 190 assert(instance); … … 215 215 216 216 /* Init transfer lists */ 217 ret = uhci_hc_init_transfer_lists(instance);217 ret = hc_init_transfer_lists(instance); 218 218 CHECK_RET_DEST_CMDS_RETURN(ret, "Failed to init transfer lists.\n"); 219 219 usb_log_debug("Initialized transfer lists.\n"); … … 252 252 * USB scheduling. Sets pointer table for quick access. 253 253 */ 254 int uhci_hc_init_transfer_lists(uhci_hc_t *instance)254 int hc_init_transfer_lists(hc_t *instance) 255 255 { 256 256 assert(instance); … … 318 318 * Checks for bandwidth availability and appends the batch to the proper queue. 319 319 */ 320 int uhci_hc_schedule(uhci_hc_t *instance, usb_transfer_batch_t *batch)320 int hc_schedule(hc_t *instance, usb_transfer_batch_t *batch) 321 321 { 322 322 assert(instance); … … 351 351 * - resume from suspend state (not implemented) 352 352 */ 353 void uhci_hc_interrupt(uhci_hc_t *instance, uint16_t status)353 void hc_interrupt(hc_t *instance, uint16_t status) 354 354 { 355 355 assert(instance); … … 373 373 if (instance->hw_failures < UHCI_ALLOWED_HW_FAIL) { 374 374 /* reinitialize hw, this triggers virtual disconnect*/ 375 uhci_hc_init_hw(instance);375 hc_init_hw(instance); 376 376 } else { 377 377 usb_log_fatal("Too many UHCI hardware failures!.\n"); 378 uhci_hc_fini(instance);378 hc_fini(instance); 379 379 } 380 380 } … … 386 386 * @return EOK (should never return) 387 387 */ 388 int uhci_hc_interrupt_emulator(void* arg)388 int hc_interrupt_emulator(void* arg) 389 389 { 390 390 usb_log_debug("Started interrupt emulator.\n"); 391 uhci_hc_t *instance = (uhci_hc_t*)arg;391 hc_t *instance = (hc_t*)arg; 392 392 assert(instance); 393 393 … … 398 398 if (status != 0) 399 399 usb_log_debug2("UHCI status: %x.\n", status); 400 uhci_hc_interrupt(instance, status);400 hc_interrupt(instance, status); 401 401 async_usleep(UHCI_CLEANER_TIMEOUT); 402 402 } … … 409 409 * @return EOK (should never return) 410 410 */ 411 int uhci_hc_debug_checker(void *arg)412 { 413 uhci_hc_t *instance = (uhci_hc_t*)arg;411 int hc_debug_checker(void *arg) 412 { 413 hc_t *instance = (hc_t*)arg; 414 414 assert(instance); 415 415
Note:
See TracChangeset
for help on using the changeset viewer.