Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/nic/rtl8169/driver.c

    rdd8ab1c r17651f8  
    2828
    2929#include <assert.h>
    30 #include <async.h>
    3130#include <errno.h>
    32 #include <str_error.h>
    3331#include <align.h>
    3432#include <byteorder.h>
     
    3634
    3735#include <as.h>
     36#include <thread.h>
    3837#include <ddf/log.h>
    3938#include <ddf/interrupt.h>
     
    7372static int rtl8169_on_stopped(nic_t *nic_data);
    7473static void rtl8169_send_frame(nic_t *nic_data, void *data, size_t size);
    75 static void rtl8169_irq_handler(ipc_call_t *icall, ddf_dev_t *dev);
    76 static inline int rtl8169_register_int_handler(nic_t *nic_data, cap_handle_t *handle);
     74static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
     75    ddf_dev_t *dev);
     76static inline int rtl8169_register_int_handler(nic_t *nic_data);
    7777static inline void rtl8169_get_hwaddr(rtl8169_t *rtl8169, nic_address_t *addr);
    7878static inline void rtl8169_set_hwaddr(rtl8169_t *rtl8169, const nic_address_t *addr);
     
    360360}
    361361
    362 inline static int rtl8169_register_int_handler(nic_t *nic_data, cap_handle_t *handle)
     362inline static int rtl8169_register_int_handler(nic_t *nic_data)
    363363{
    364364        rtl8169_t *rtl8169 = nic_get_specific(nic_data);
     
    368368        rtl8169_irq_code.cmds[2].addr = rtl8169->regs + ISR;
    369369        rtl8169_irq_code.cmds[3].addr = rtl8169->regs + IMR;
    370         int rc = register_interrupt_handler(nic_get_ddf_dev(nic_data),
    371             rtl8169->irq, rtl8169_irq_handler, &rtl8169_irq_code, handle);
    372 
    373         return rc;
     370        int irq_cap = register_interrupt_handler(nic_get_ddf_dev(nic_data),
     371            rtl8169->irq, rtl8169_irq_handler, &rtl8169_irq_code);
     372
     373        return irq_cap;
    374374}
    375375
     
    428428                goto err_pio;
    429429
    430         int irq_cap;
    431         rc = rtl8169_register_int_handler(nic_data, &irq_cap);
    432         if (rc != EOK) {
    433                 ddf_msg(LVL_ERROR, "Failed to register IRQ handler (%s)", str_error_name(rc));
     430        int irq_cap = rtl8169_register_int_handler(nic_data);
     431        if (irq_cap < 0) {
     432                rc = irq_cap;
     433                ddf_msg(LVL_ERROR, "Failed to register IRQ handler (%d)", rc);
    434434                goto err_irq;
    435435        }
     
    707707        rc = rtl8169_allocate_buffers(rtl8169);
    708708        if (rc != EOK) {
    709                 ddf_msg(LVL_ERROR, "Error allocating buffers: %s", str_error_name(rc));
     709                ddf_msg(LVL_ERROR, "Error allocating buffers: %d", rc);
    710710                return 0;
    711711        }
     
    764764        memory_barrier();
    765765        while (pio_read_8(rtl8169->regs + CR) & CR_RST) {
    766                 async_usleep(1);
     766                thread_usleep(1);
    767767                read_barrier();
    768768        }
     
    10321032}
    10331033
    1034 static void rtl8169_irq_handler(ipc_call_t *icall, ddf_dev_t *dev)
     1034static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
     1035    ddf_dev_t *dev)
    10351036{
    10361037        assert(dev);
     
    11771178        do {
    11781179                phyar = pio_read_32(rtl8169->regs + PHYAR);
    1179                 async_usleep(20);
     1180                thread_usleep(20);
    11801181        } while ((phyar & PHYAR_RW_WRITE) == 0);
    11811182
     
    11951196        do {
    11961197                phyar = pio_read_32(rtl8169->regs + PHYAR);
    1197                 async_usleep(20);
     1198                thread_usleep(20);
    11981199        } while ((phyar & PHYAR_RW_WRITE) != 0);
    11991200
    1200         async_usleep(20);
     1201        thread_usleep(20);
    12011202}
    12021203
Note: See TracChangeset for help on using the changeset viewer.