Changeset d51838f in mainline for uspace/drv/nic/e1k/e1k.c


Ignore:
Timestamp:
2017-10-14T22:49:18Z (7 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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/nic/e1k/e1k.c

    rce732e74 rd51838f  
    4040#include <thread.h>
    4141#include <byteorder.h>
    42 #include <irc.h>
    4342#include <as.h>
    4443#include <ddi.h>
    4544#include <ddf/log.h>
    4645#include <ddf/interrupt.h>
     46#include <device/hw_res.h>
    4747#include <device/hw_res_parsed.h>
    4848#include <pci_dev_iface.h>
     
    116116/** E1000 device data */
    117117typedef struct {
     118        /** DDF device */
     119        ddf_dev_t *dev;
     120        /** Parent session */
     121        async_sess_t *parent_sess;
    118122        /** Device configuration */
    119123        e1000_info_t info;
     
    17571761        e1000_enable_interrupts(e1000);
    17581762       
    1759         int rc = irc_enable_interrupt(e1000->irq);
     1763        int rc = hw_res_enable_interrupt(e1000->parent_sess, e1000->irq);
    17601764        if (rc != EOK) {
    17611765                e1000_disable_interrupts(e1000);
     
    18021806        e1000_disable_rx(e1000);
    18031807       
    1804         irc_disable_interrupt(e1000->irq);
     1808        hw_res_disable_interrupt(e1000->parent_sess, e1000->irq);
    18051809        e1000_disable_interrupts(e1000);
    18061810       
     
    18841888       
    18851889        memset(e1000, 0, sizeof(e1000_t));
     1890        e1000->dev = dev;
    18861891       
    18871892        nic_set_specific(nic, e1000);
     
    19982003                ddf_msg(LVL_ERROR, "Unable to allocate device softstate");
    19992004                return ENOMEM;
     2005        }
     2006       
     2007        e1000->parent_sess = ddf_dev_parent_sess_get(dev);
     2008        if (e1000->parent_sess == NULL) {
     2009                ddf_msg(LVL_ERROR, "Failed connecting parent device.");
     2010                return EIO;
    20002011        }
    20012012       
     
    21192130{
    21202131        ddf_fun_t *fun;
    2121         assert(dev);
    21222132       
    21232133        /* Initialize device structure for E1000 */
Note: See TracChangeset for help on using the changeset viewer.