Changeset 1c7b0db7 in mainline for uspace/drv/nic/rtl8139/driver.c


Ignore:
Timestamp:
2025-03-06T16:42:01Z (3 days ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
870841cf
Parents:
07039850
Message:

Implement quiesce in NE2k, RTL8139 and RTL8169.

File:
1 edited

Legend:

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

    r07039850 r1c7b0db7  
    11/*
     2 * Copyright (c) 2025 Jiri Svoboda
    23 * Copyright (c) 2011 Jiri Michalec
    34 * All rights reserved.
     
    338339
    339340static errno_t rtl8139_dev_add(ddf_dev_t *dev);
     341static errno_t rtl8139_dev_quiesce(ddf_dev_t *dev);
    340342
    341343/** Basic driver operations for RTL8139 driver */
    342344static driver_ops_t rtl8139_driver_ops = {
    343345        .dev_add = &rtl8139_dev_add,
     346        .dev_quiesce = &rtl8139_dev_quiesce
    344347};
    345348
     
    432435 *  @param io_base  The address of the i/o port mapping start
    433436 */
    434 inline static void rtl8139_hw_soft_reset(void *io_base)
     437static void rtl8139_hw_soft_reset(void *io_base)
    435438{
    436439        pio_write_8(io_base + CR, CR_RST);
     
    845848 *  @return An error code otherwise.
    846849 */
    847 inline static errno_t rtl8139_register_int_handler(nic_t *nic_data,
     850static errno_t rtl8139_register_int_handler(nic_t *nic_data,
    848851    cap_irq_handle_t *handle)
    849852{
     
    872875 * @param rtl8139  The card private data
    873876 */
    874 inline static void rtl8139_card_up(rtl8139_t *rtl8139)
     877static void rtl8139_card_up(rtl8139_t *rtl8139)
    875878{
    876879        void *io_base = rtl8139->io_port;
     
    12451248                }
    12461249        }
     1250}
     1251
     1252static void rtl8139_quiesce(rtl8139_t *rtl8139)
     1253{
     1254        rtl8139_hw_soft_reset(rtl8139->io_port);
    12471255}
    12481256
     
    13281336        rtl8139_dev_cleanup(dev);
    13291337        return rc;
     1338}
     1339
     1340/** Quiesce RTL8139.
     1341 *
     1342 * @param dev RTL8139 device.
     1343 * @return EOK on sucess, or an error code.
     1344 */
     1345errno_t rtl8139_dev_quiesce(ddf_dev_t *dev)
     1346{
     1347        nic_t *nic;
     1348        rtl8139_t *rtl8139;
     1349
     1350        ddf_msg(LVL_NOTE, "RTL8139_dev_quiesce %s (handle = %zu)",
     1351            ddf_dev_get_name(dev), ddf_dev_get_handle(dev));
     1352
     1353        nic = nic_get_from_ddf_dev(dev);
     1354        rtl8139 = nic_get_specific(nic);
     1355
     1356        rtl8139_quiesce(rtl8139);
     1357        return EOK;
    13301358}
    13311359
Note: See TracChangeset for help on using the changeset viewer.