Changeset d51838f in mainline for uspace/drv/nic/rtl8169


Ignore:
Timestamp:
2017-10-14T22:49:18Z (8 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
75911d24
Parents:
ce732e74
Message:

Let leaf drivers enable/disable/clear interrupts via hw_res instead of directly using irc.

Location:
uspace/drv/nic/rtl8169
Files:
2 edited

Legend:

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

    rce732e74 rd51838f  
    3131#include <align.h>
    3232#include <byteorder.h>
    33 #include <irc.h>
    3433#include <libarch/barrier.h>
    3534
     
    3837#include <ddf/log.h>
    3938#include <ddf/interrupt.h>
     39#include <device/hw_res.h>
     40#include <device/hw_res_parsed.h>
    4041#include <io/log.h>
    4142#include <nic.h>
    4243#include <pci_dev_iface.h>
    4344
    44 #include <ipc/irc.h>
    4545#include <sysinfo.h>
    4646#include <ipc/ns.h>
     
    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
    398403        /* Get PCI VID & PID */
    399         rc = pci_config_space_read_16(ddf_dev_parent_sess_get(dev),
    400             PCI_VENDOR_ID, &rtl8169->pci_vid);
     404        rc = pci_config_space_read_16(rtl8169->parent_sess, PCI_VENDOR_ID,
     405            &rtl8169->pci_vid);
    401406        if (rc != EOK)
    402407                return rc;
    403408
    404         rc = pci_config_space_read_16(ddf_dev_parent_sess_get(dev),
    405             PCI_DEVICE_ID, &rtl8169->pci_pid);
     409        rc = pci_config_space_read_16(rtl8169->parent_sess, PCI_DEVICE_ID,
     410            &rtl8169->pci_pid);
    406411        if (rc != EOK)
    407412                return rc;
     
    745750
    746751        pio_write_16(rtl8169->regs + IMR, 0xffff);
    747         irc_enable_interrupt(rtl8169->irq);
     752        /* XXX Check return value */
     753        hw_res_enable_interrupt(rtl8169->parent_sess, rtl8169->irq);
    748754
    749755        return EOK;
  • uspace/drv/nic/rtl8169/driver.h

    rce732e74 rd51838f  
    4949/** RTL8139 device data */
    5050typedef struct rtl8169_data {
     51        /** DDF device */
     52        ddf_dev_t *dev;
     53        /** Parent session */
     54        async_sess_t *parent_sess;
    5155        /** I/O address of the device */
    5256        void *regs_phys;
Note: See TracChangeset for help on using the changeset viewer.