Ignore:
File:
1 edited

Legend:

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

    r807be7e r870841cf  
    11/*
     2 * Copyright (c) 2025 Jiri Svoboda
    23 * Copyright (c) 2011 Zdenek Bouska
    34 * All rights reserved.
     
    220221
    221222static errno_t e1000_dev_add(ddf_dev_t *);
     223static errno_t e1000_dev_quiesce(ddf_dev_t *);
    222224
    223225/** Basic driver operations for E1000 driver */
    224226static driver_ops_t e1000_driver_ops = {
    225         .dev_add = e1000_dev_add
     227        .dev_add = e1000_dev_add,
     228        .dev_quiesce = e1000_dev_quiesce
    226229};
    227230
     
    12441247 *
    12451248 * @param icall IPC call structure
    1246  * @param dev   E1000 device
    1247  *
    1248  */
    1249 static void e1000_interrupt_handler(ipc_call_t *icall,
    1250     ddf_dev_t *dev)
     1249 * @param arg   Argument (nic_t *)
     1250 *
     1251 */
     1252static void e1000_interrupt_handler(ipc_call_t *icall, void *arg)
    12511253{
    12521254        uint32_t icr = (uint32_t) ipc_get_arg2(icall);
    1253         nic_t *nic = NIC_DATA_DEV(dev);
     1255        nic_t *nic = (nic_t *)arg;
    12541256        e1000_t *e1000 = DRIVER_DATA_NIC(nic);
    12551257
     
    12701272 *
    12711273 */
    1272 inline static errno_t e1000_register_int_handler(nic_t *nic,
     1274static errno_t e1000_register_int_handler(nic_t *nic,
    12731275    cap_irq_handle_t *handle)
    12741276{
     
    12831285
    12841286        errno_t rc = register_interrupt_handler(nic_get_ddf_dev(nic), e1000->irq,
    1285             e1000_interrupt_handler, &e1000_irq_code, handle);
     1287            e1000_interrupt_handler, (void *)nic, &e1000_irq_code, handle);
    12861288
    12871289        fibril_mutex_unlock(&irq_reg_mutex);
     
    19191921 *
    19201922 */
    1921 inline static void e1000_delete_dev_data(ddf_dev_t *dev)
     1923static void e1000_delete_dev_data(ddf_dev_t *dev)
    19221924{
    19231925        assert(dev);
     
    22242226}
    22252227
     2228/** Quiesce E1000 device.
     2229 *
     2230 * @param dev E1000 device.
     2231 *
     2232 */
     2233errno_t e1000_dev_quiesce(ddf_dev_t *dev)
     2234{
     2235        nic_t *nic = ddf_dev_data_get(dev);
     2236        e1000_t *e1000 = DRIVER_DATA_NIC(nic);
     2237        errno_t rc;
     2238
     2239        ddf_msg(LVL_DEBUG, "e1000_dev_quiesce()");
     2240
     2241        e1000_disable_interrupts(e1000);
     2242        rc = e1000_reset(nic);
     2243        if (rc != EOK)
     2244                ddf_msg(LVL_ERROR, "e1000_dev_quiesce failed");
     2245        return rc;
     2246}
     2247
    22262248/** Read 16-bit value from EEPROM of E1000 adapter
    22272249 *
Note: See TracChangeset for help on using the changeset viewer.