Ignore:
File:
1 edited

Legend:

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

    r60744cb r870841cf  
    11/*
     2 * Copyright (c) 2025 Jiri Svoboda
    23 * Copyright (c) 2011 Jiri Michalec
    34 * All rights reserved.
     
    7475 *
    7576 */
    76 inline static void rtl8139_lock_all(rtl8139_t *rtl8139)
     77static void rtl8139_lock_all(rtl8139_t *rtl8139)
    7778{
    7879        assert(rtl8139);
     
    8687 *
    8788 */
    88 inline static void rtl8139_unlock_all(rtl8139_t *rtl8139)
     89static void rtl8139_unlock_all(rtl8139_t *rtl8139)
    8990{
    9091        assert(rtl8139);
     
    127128 *  @param rtl8139  The card private structure
    128129 */
    129 inline static void rtl8139_hw_int_set(rtl8139_t *rtl8139)
     130static void rtl8139_hw_int_set(rtl8139_t *rtl8139)
    130131{
    131132        pio_write_16(rtl8139->io_port + IMR, rtl8139->int_mask);
     
    138139 *  @return Nonzero if empty, zero otherwise
    139140 */
    140 inline static int rtl8139_hw_buffer_empty(rtl8139_t *rtl8139)
     141static int rtl8139_hw_buffer_empty(rtl8139_t *rtl8139)
    141142{
    142143        return pio_read_16(rtl8139->io_port + CR) & CR_BUFE;
     
    166167 *  @param mask     The mask to set
    167168 */
    168 inline static void rtl8139_hw_set_mcast_mask(rtl8139_t *rtl8139,
     169static void rtl8139_hw_set_mcast_mask(rtl8139_t *rtl8139,
    169170    uint64_t mask)
    170171{
     
    180181 *  @param bit_val  If bit_val is zero pmen is set to 0, otherwise pmen is set to 1
    181182 */
    182 inline static void rtl8139_hw_pmen_set(rtl8139_t *rtl8139, uint8_t bit_val)
     183static void rtl8139_hw_pmen_set(rtl8139_t *rtl8139, uint8_t bit_val)
    183184{
    184185        uint8_t config1 = pio_read_8(rtl8139->io_port + CONFIG1);
     
    222223 *  @return EOK if succeed, error code otherwise
    223224 */
    224 inline static void rtl8139_hw_get_addr(rtl8139_t *rtl8139,
     225static void rtl8139_hw_get_addr(rtl8139_t *rtl8139,
    225226    nic_address_t *addr)
    226227{
     
    261262 *   @param bits_add    The value to or
    262263 */
    263 inline static void rtl8139_hw_reg_add_8(rtl8139_t *rtl8139, size_t reg_offset,
     264static void rtl8139_hw_reg_add_8(rtl8139_t *rtl8139, size_t reg_offset,
    264265    uint8_t bits_add)
    265266{
     
    275276 *   @param bits_add    The mask of bits to remove
    276277 */
    277 inline static void rtl8139_hw_reg_rem_8(rtl8139_t *rtl8139, size_t reg_offset,
     278static void rtl8139_hw_reg_rem_8(rtl8139_t *rtl8139, size_t reg_offset,
    278279    uint8_t bits_add)
    279280{
     
    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
     
    17661794 *  @param was_promisc  Sign if the promiscuous mode was active before disabling
    17671795 */
    1768 inline static void rtl8139_rcx_promics_rem(nic_t *nic_data,
     1796static void rtl8139_rcx_promics_rem(nic_t *nic_data,
    17691797    nic_multicast_mode_t mcast_mode, uint8_t was_promisc)
    17701798{
Note: See TracChangeset for help on using the changeset viewer.