Ignore:
File:
1 edited

Legend:

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

    rd51838f r582a0b8  
    3131#include <align.h>
    3232#include <byteorder.h>
     33#include <irc.h>
    3334#include <libarch/barrier.h>
    3435
     
    3738#include <ddf/log.h>
    3839#include <ddf/interrupt.h>
    39 #include <device/hw_res.h>
    40 #include <device/hw_res_parsed.h>
    4140#include <io/log.h>
    4241#include <nic.h>
    4342#include <pci_dev_iface.h>
    4443
     44#include <ipc/irc.h>
    4545#include <sysinfo.h>
    4646#include <ipc/ns.h>
     
    371371        rtl8169_irq_code.cmds[2].addr = rtl8169->regs + ISR;
    372372        rtl8169_irq_code.cmds[3].addr = rtl8169->regs + IMR;
    373         int irq_cap = register_interrupt_handler(nic_get_ddf_dev(nic_data),
     373        int rc = register_interrupt_handler(nic_get_ddf_dev(nic_data),
    374374            rtl8169->irq, rtl8169_irq_handler, &rtl8169_irq_code);
    375375
    376         return irq_cap;
     376        return rc;
    377377}
    378378
     
    396396        rtl8169_t *rtl8169 = nic_get_specific(nic_data);
    397397
    398         rtl8169->dev = dev;
    399         rtl8169->parent_sess = ddf_dev_parent_sess_get(dev);
    400         if (rtl8169->parent_sess == NULL)
    401                 return EIO;
    402 
    403398        /* Get PCI VID & PID */
    404         rc = pci_config_space_read_16(rtl8169->parent_sess, PCI_VENDOR_ID,
    405             &rtl8169->pci_vid);
     399        rc = pci_config_space_read_16(ddf_dev_parent_sess_get(dev),
     400            PCI_VENDOR_ID, &rtl8169->pci_vid);
    406401        if (rc != EOK)
    407402                return rc;
    408403
    409         rc = pci_config_space_read_16(rtl8169->parent_sess, PCI_DEVICE_ID,
    410             &rtl8169->pci_pid);
     404        rc = pci_config_space_read_16(ddf_dev_parent_sess_get(dev),
     405            PCI_DEVICE_ID, &rtl8169->pci_pid);
    411406        if (rc != EOK)
    412407                return rc;
     
    431426                goto err_pio;
    432427
    433         int irq_cap = rtl8169_register_int_handler(nic_data);
    434         if (irq_cap < 0) {
    435                 rc = irq_cap;
     428        rc = rtl8169_register_int_handler(nic_data);
     429        if (rc != EOK) {
    436430                ddf_msg(LVL_ERROR, "Failed to register IRQ handler (%d)", rc);
    437431                goto err_irq;
     432
    438433        }
    439434
     
    474469err_srv:
    475470        /* XXX Disconnect from services */
    476         unregister_interrupt_handler(dev, irq_cap);
    477471err_irq:
     472        //unregister_interrupt_handler(dev, rtl8169->irq);
    478473err_pio:
    479474err_destroy:
     
    750745
    751746        pio_write_16(rtl8169->regs + IMR, 0xffff);
    752         /* XXX Check return value */
    753         hw_res_enable_interrupt(rtl8169->parent_sess, rtl8169->irq);
     747        irc_enable_interrupt(rtl8169->irq);
    754748
    755749        return EOK;
Note: See TracChangeset for help on using the changeset viewer.