Changeset cabda7f in mainline
- Timestamp:
- 2011-02-25T20:48:30Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0fde1d5
- Parents:
- 2d33eb5
- Location:
- uspace/drv/uhci-hcd
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/uhci-hcd/main.c
r2d33eb5 rcabda7f 61 61 }; 62 62 /*----------------------------------------------------------------------------*/ 63 #ifdef USE_INTERRUPTS64 63 static void irq_handler(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *call) 65 64 { … … 70 69 uhci_interrupt(hc, status); 71 70 } 72 #endif73 71 /*----------------------------------------------------------------------------*/ 74 72 #define CHECK_RET_RETURN(ret, message...) \ … … 85 83 86 84 87 uintptr_t io_reg_base ;88 size_t io_reg_size ;89 int irq ;85 uintptr_t io_reg_base = 0; 86 size_t io_reg_size = 0; 87 int irq = 0; 90 88 91 89 int ret = 92 90 pci_get_my_registers(device, &io_reg_base, &io_reg_size, &irq); 93 io_reg_size = sizeof(regs_t);94 91 95 92 CHECK_RET_RETURN(ret, … … 97 94 usb_log_info("I/O regs at 0x%X (size %zu), IRQ %d.\n", 98 95 io_reg_base, io_reg_size, irq); 96 io_reg_size = 32; 99 97 100 #ifdef USE_INTERRUPTS 101 ret = pci_enable_interrupts(device); 102 CHECK_RET_RETURN(ret, "Failed(%d) to get enable interrupts:\n", ret); 103 #endif 98 // ret = pci_enable_interrupts(device); 99 // CHECK_RET_RETURN(ret, "Failed(%d) to get enable interrupts:\n", ret); 104 100 105 101 uhci_t *uhci_hc = malloc(sizeof(uhci_t)); … … 119 115 */ 120 116 device->driver_data = uhci_hc; 121 #ifdef USE_INTERRUPTS122 117 ret = register_interrupt_handler(device, irq, irq_handler, 123 118 &uhci_hc->interrupt_code); … … 128 123 return ret; 129 124 } 130 #endif131 125 132 126 ddf_fun_t *rh; … … 155 149 { 156 150 sleep(3); 157 usb_log_enable(USB_LOG_LEVEL_ INFO, NAME);151 usb_log_enable(USB_LOG_LEVEL_DEBUG, NAME); 158 152 159 153 return ddf_driver_main(&uhci_driver); -
uspace/drv/uhci-hcd/uhci.c
r2d33eb5 rcabda7f 141 141 142 142 instance->cleaner = fibril_create(uhci_interrupt_emulator, instance); 143 #ifndef USE_INTERRUTPS144 143 fibril_add_ready(instance->cleaner); 145 #endif146 144 147 145 instance->debug_checker = fibril_create(uhci_debug_checker, instance); … … 153 151 void uhci_init_hw(uhci_t *instance) 154 152 { 153 /* reset hc, who knows what touched it before us */ 154 pio_write_16(&instance->registers->usbcmd, UHCI_CMD_GLOBAL_RESET); 155 async_usleep(10000); /* 10ms according to USB spec */ 156 pio_write_16(&instance->registers->usbcmd, 0); 155 157 156 158 /* set framelist pointer */ … … 159 161 160 162 /* enable all interrupts, but resume interrupt */ 161 pio_write_16(&instance->registers->usbintr,162 UHCI_INTR_CRC | UHCI_INTR_COMPLETE | UHCI_INTR_SHORT_PACKET);163 // pio_write_16(&instance->registers->usbintr, 164 // UHCI_INTR_CRC | UHCI_INTR_COMPLETE | UHCI_INTR_SHORT_PACKET); 163 165 164 166 /* Start the hc with large(64B) packet FSBR */ … … 295 297 while(1) { 296 298 uint16_t status = pio_read_16(&instance->registers->usbsts); 299 usb_log_debug("UHCI status: %x.\n", status); 300 status |= 1; 297 301 uhci_interrupt(instance, status); 298 302 pio_write_16(&instance->registers->usbsts, 0x1f); 299 async_usleep(UHCI_CLEANER_TIMEOUT );303 async_usleep(UHCI_CLEANER_TIMEOUT * 1000); 300 304 } 301 305 return EOK; … … 313 317 cmd, sts, intr); 314 318 315 uintptr_t frame_list = pio_read_32(&instance->registers->flbaseadd); 319 uintptr_t frame_list = 320 pio_read_32(&instance->registers->flbaseadd) & ~0xfff; 316 321 if (frame_list != addr_to_phys(instance->frame_list)) { 317 322 usb_log_debug("Framelist address: %p vs. %p.\n", -
uspace/drv/uhci-hcd/uhci_struct/transfer_descriptor.c
r2d33eb5 rcabda7f 69 69 instance->next, instance->status, instance->device, 70 70 instance->buffer_ptr, buffer); 71 #if 072 if (size) {73 unsigned char * buff = buffer;74 uhci_print_verbose("TD Buffer dump(%p-%dB): ", buffer, size);75 unsigned i = 0;76 /* TODO: Verbose? */77 for (; i < size; ++i) {78 printf((i & 1) ? "%x " : "%x", buff[i]);79 }80 printf("\n");81 }82 #endif83 71 } 84 72 /*----------------------------------------------------------------------------*/
Note:
See TracChangeset
for help on using the changeset viewer.