Changeset 8e7c9fe in mainline for uspace/drv/nic/ne2k/ne2k.c


Ignore:
Timestamp:
2014-09-12T03:45:25Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c53b58e
Parents:
3eb0c85 (diff), 105d8d6 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge mainline changes

most usb changes were reverted. blink and usbmass were fixed
known problems:
ehci won't initialize
usbmast asserts on unmount (happens on mainline too)

File:
1 edited

Legend:

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

    r3eb0c85 r8e7c9fe  
    3838 */
    3939
    40 /* XXX Fix this */
    41 #define _DDF_DATA_IMPLANT
    42 
    4340#include <stdio.h>
    4441#include <errno.h>
     42#include <irc.h>
    4543#include <stdlib.h>
    4644#include <str_error.h>
     
    124122};
    125123
    126 static void ne2k_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid,
    127         ipc_call_t *call);
     124static void ne2k_interrupt_handler(ipc_callid_t, ipc_call_t *, ddf_dev_t *);
    128125
    129126static int ne2k_register_interrupt(nic_t *nic_data)
     
    242239}
    243240
    244 void ne2k_interrupt_handler(ddf_dev_t *dev, ipc_callid_t iid, ipc_call_t *call)
     241void ne2k_interrupt_handler(ipc_callid_t iid, ipc_call_t *call, ddf_dev_t *dev)
    245242{
    246243        nic_t *nic_data = DRIVER_DATA(dev);
    247244        ne2k_interrupt(nic_data, IRQ_GET_ISR(*call), IRQ_GET_TSR(*call));
    248 
     245       
    249246        async_answer_0(iid, EOK);
    250247}
     
    256253        if (!ne2k->up) {
    257254                int rc = ne2k_up(ne2k);
     255                if (rc != EOK)
     256                        return rc;
     257
     258                rc = irc_enable_interrupt(ne2k->irq);
    258259                if (rc != EOK) {
     260                        ne2k_down(ne2k);
    259261                        return rc;
    260262                }
    261 
    262                 nic_enable_interrupt(nic_data, ne2k->irq);
    263263        }
    264264        return EOK;
     
    269269        ne2k_t *ne2k = (ne2k_t *) nic_get_specific(nic_data);
    270270
    271         nic_disable_interrupt(nic_data, ne2k->irq);
     271        (void) irc_disable_interrupt(ne2k->irq);
    272272        ne2k->receive_configuration = RCR_AB | RCR_AM;
    273273        ne2k_down(ne2k);
     
    396396        }
    397397       
    398         rc = nic_connect_to_services(nic_data);
    399         if (rc != EOK) {
    400                 ne2k_dev_cleanup(dev);
    401                 return rc;
    402         }
    403        
    404398        fun = ddf_fun_create(nic_get_ddf_dev(nic_data), fun_exposed, "port0");
    405399        if (fun == NULL) {
     
    407401                return ENOMEM;
    408402        }
     403       
    409404        nic_set_ddf_fun(nic_data, fun);
    410405        ddf_fun_set_ops(fun, &ne2k_dev_ops);
    411         ddf_fun_data_implant(fun, nic_data);
    412406       
    413407        rc = ddf_fun_bind(fun);
     
    443437int main(int argc, char *argv[])
    444438{
     439        printf("%s: HelenOS NE 2000 network adapter driver\n", NAME);
     440       
    445441        nic_driver_init(NAME);
    446442        nic_driver_implement(&ne2k_driver_ops, &ne2k_dev_ops, &ne2k_nic_iface);
Note: See TracChangeset for help on using the changeset viewer.