Changeset 0c2d9bb in mainline for uspace/drv/bus/usb/uhci/uhci.c
- Timestamp:
- 2013-12-25T22:54:29Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b51cf2c
- Parents:
- f7a33de (diff), ac36aed (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/bus/usb/uhci/uhci.c
rf7a33de r0c2d9bb 132 132 }; 133 133 134 static pio_window_t *get_pio_window(ddf_fun_t *fun) 135 { 136 rh_t *rh = ddf_fun_data_get(fun); 137 138 if (rh == NULL) 139 return NULL; 140 return &rh->pio_window; 141 } 142 143 static pio_window_ops_t pio_window_iface = { 144 .get_pio_window = get_pio_window 145 }; 146 134 147 /** RH function support for uhci_rhd */ 135 148 static ddf_dev_ops_t rh_ops = { 136 149 .interfaces[USB_DEV_IFACE] = &usb_iface, 137 .interfaces[HW_RES_DEV_IFACE] = &hw_res_iface 150 .interfaces[HW_RES_DEV_IFACE] = &hw_res_iface, 151 .interfaces[PIO_WINDOW_DEV_IFACE] = &pio_window_iface 138 152 }; 139 153 … … 184 198 ddf_fun_data_implant(instance->rh_fun, &instance->rh); 185 199 186 uintptr_t reg_base = 0; 187 size_t reg_size = 0; 200 addr_range_t regs; 188 201 int irq = 0; 189 202 190 rc = get_my_registers(device, ® _base, ®_size, &irq);203 rc = get_my_registers(device, ®s, &irq); 191 204 if (rc != EOK) { 192 205 usb_log_error("Failed to get I/O addresses for %" PRIun ": %s.\n", … … 194 207 goto error; 195 208 } 196 usb_log_debug("I/O regs at 0x%p (size %zu), IRQ %d.\n",197 (void *) reg_base, reg_size, irq);209 usb_log_debug("I/O regs at %p (size %zu), IRQ %d.\n", 210 RNGABSPTR(regs), RNGSZ(regs), irq); 198 211 199 212 rc = disable_legacy(device); … … 204 217 } 205 218 206 rc = hc_register_irq_handler(device, reg_base, reg_size, irq, irq_handler);219 rc = hc_register_irq_handler(device, ®s, irq, irq_handler); 207 220 if (rc != EOK) { 208 221 usb_log_error("Failed to register interrupt handler: %s.\n", … … 223 236 } 224 237 225 rc = hc_init(&instance->hc, (void*)reg_base, reg_size, interrupts);238 rc = hc_init(&instance->hc, ®s, interrupts); 226 239 if (rc != EOK) { 227 240 usb_log_error("Failed to init uhci_hcd: %s.\n", str_error(rc)); … … 247 260 } 248 261 249 rc = rh_init(&instance->rh, instance->rh_fun, 250 (uintptr_t)instance->hc.registers + 0x10, 4); 262 rc = rh_init(&instance->rh, instance->rh_fun, ®s, 0x10, 4); 251 263 if (rc != EOK) { 252 264 usb_log_error("Failed to setup UHCI root hub: %s.\n",
Note:
See TracChangeset
for help on using the changeset viewer.