Ignore:
File:
1 edited

Legend:

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

    rdd8ab1c rd51838f  
    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>
     
    4342#include <nic.h>
    4443#include <pci_dev_iface.h>
     44
     45#include <sysinfo.h>
     46#include <ipc/ns.h>
    4547
    4648#include <str.h>
     
    7375static int rtl8169_on_stopped(nic_t *nic_data);
    7476static 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);
     77static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
     78    ddf_dev_t *dev);
     79static inline int rtl8169_register_int_handler(nic_t *nic_data);
    7780static inline void rtl8169_get_hwaddr(rtl8169_t *rtl8169, nic_address_t *addr);
    7881static inline void rtl8169_set_hwaddr(rtl8169_t *rtl8169, const nic_address_t *addr);
     
    360363}
    361364
    362 inline static int rtl8169_register_int_handler(nic_t *nic_data, cap_handle_t *handle)
     365inline static int rtl8169_register_int_handler(nic_t *nic_data)
    363366{
    364367        rtl8169_t *rtl8169 = nic_get_specific(nic_data);
     
    368371        rtl8169_irq_code.cmds[2].addr = rtl8169->regs + ISR;
    369372        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;
     373        int irq_cap = register_interrupt_handler(nic_get_ddf_dev(nic_data),
     374            rtl8169->irq, rtl8169_irq_handler, &rtl8169_irq_code);
     375
     376        return irq_cap;
    374377}
    375378
     
    428431                goto err_pio;
    429432
    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));
     433        int irq_cap = rtl8169_register_int_handler(nic_data);
     434        if (irq_cap < 0) {
     435                rc = irq_cap;
     436                ddf_msg(LVL_ERROR, "Failed to register IRQ handler (%d)", rc);
    434437                goto err_irq;
    435438        }
     
    707710        rc = rtl8169_allocate_buffers(rtl8169);
    708711        if (rc != EOK) {
    709                 ddf_msg(LVL_ERROR, "Error allocating buffers: %s", str_error_name(rc));
     712                ddf_msg(LVL_ERROR, "Error allocating buffers: %d", rc);
    710713                return 0;
    711714        }
     
    764767        memory_barrier();
    765768        while (pio_read_8(rtl8169->regs + CR) & CR_RST) {
    766                 async_usleep(1);
     769                thread_usleep(1);
    767770                read_barrier();
    768771        }
     
    10321035}
    10331036
    1034 static void rtl8169_irq_handler(ipc_call_t *icall, ddf_dev_t *dev)
     1037static void rtl8169_irq_handler(ipc_callid_t iid, ipc_call_t *icall,
     1038    ddf_dev_t *dev)
    10351039{
    10361040        assert(dev);
     
    11771181        do {
    11781182                phyar = pio_read_32(rtl8169->regs + PHYAR);
    1179                 async_usleep(20);
     1183                thread_usleep(20);
    11801184        } while ((phyar & PHYAR_RW_WRITE) == 0);
    11811185
     
    11951199        do {
    11961200                phyar = pio_read_32(rtl8169->regs + PHYAR);
    1197                 async_usleep(20);
     1201                thread_usleep(20);
    11981202        } while ((phyar & PHYAR_RW_WRITE) != 0);
    11991203
    1200         async_usleep(20);
     1204        thread_usleep(20);
    12011205}
    12021206
Note: See TracChangeset for help on using the changeset viewer.