Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/uhci/uhci.c

    r5b89d43b rc53007f  
    132132};
    133133
    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 
    147134/** RH function support for uhci_rhd */
    148135static ddf_dev_ops_t rh_ops = {
    149136        .interfaces[USB_DEV_IFACE] = &usb_iface,
    150         .interfaces[HW_RES_DEV_IFACE] = &hw_res_iface,
    151         .interfaces[PIO_WINDOW_DEV_IFACE] = &pio_window_iface
     137        .interfaces[HW_RES_DEV_IFACE] = &hw_res_iface
    152138};
    153139
     
    198184        ddf_fun_data_implant(instance->rh_fun, &instance->rh);
    199185
    200         addr_range_t regs;
     186        uintptr_t reg_base = 0;
     187        size_t reg_size = 0;
    201188        int irq = 0;
    202189
    203         rc = get_my_registers(device, &regs, &irq);
     190        rc = get_my_registers(device, &reg_base, &reg_size, &irq);
    204191        if (rc != EOK) {
    205192                usb_log_error("Failed to get I/O addresses for %" PRIun ": %s.\n",
     
    207194                goto error;
    208195        }
    209         usb_log_debug("I/O regs at %p (size %zu), IRQ %d.\n",
    210             RNGABSPTR(regs), RNGSZ(regs), irq);
     196        usb_log_debug("I/O regs at 0x%p (size %zu), IRQ %d.\n",
     197            (void *) reg_base, reg_size, irq);
    211198
    212199        rc = disable_legacy(device);
     
    217204        }
    218205
    219         rc = hc_register_irq_handler(device, &regs, irq, irq_handler);
     206        rc = hc_register_irq_handler(device, reg_base, reg_size, irq, irq_handler);
    220207        if (rc != EOK) {
    221208                usb_log_error("Failed to register interrupt handler: %s.\n",
     
    236223        }
    237224
    238         rc = hc_init(&instance->hc, &regs, interrupts);
     225        rc = hc_init(&instance->hc, (void*)reg_base, reg_size, interrupts);
    239226        if (rc != EOK) {
    240227                usb_log_error("Failed to init uhci_hcd: %s.\n", str_error(rc));
     
    260247        }
    261248
    262         rc = rh_init(&instance->rh, instance->rh_fun, &regs, 0x10, 4);
     249        rc = rh_init(&instance->rh, instance->rh_fun,
     250            (uintptr_t)instance->hc.registers + 0x10, 4);
    263251        if (rc != EOK) {
    264252                usb_log_error("Failed to setup UHCI root hub: %s.\n",
Note: See TracChangeset for help on using the changeset viewer.