Ignore:
File:
1 edited

Legend:

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

    rc9e88da r3f74275  
    125125
    126126
    127 /** Set interrupts on controller
     127/** Disable interrupts on controller
    128128 *
    129129 *  @param rtl8139  The card private structure
    130130 */
    131 inline static void rtl8139_hw_int_set(rtl8139_t *rtl8139)
     131inline static void rtl8139_hw_int_disable(rtl8139_t *rtl8139)
     132{
     133        pio_write_16(rtl8139->io_port + IMR, 0x0);
     134}
     135/** Enable interrupts on controller
     136 *
     137 *  @param rtl8139  The card private structure
     138 */
     139inline static void rtl8139_hw_int_enable(rtl8139_t *rtl8139)
    132140{
    133141        pio_write_16(rtl8139->io_port + IMR, rtl8139->int_mask);
     
    266274}
    267275
     276/**  Provide OR in the 32bit register (set selected bits to 1)
     277 *
     278 *   @param rtl8139     The rtl8139 structure
     279 *   @param reg_offset  Register offset in the device IO space
     280 *   @param bits_add    The value to or
     281 */
     282inline static void rtl8139_hw_reg_add_32(rtl8139_t * rtl8139, size_t reg_offset,
     283    uint32_t bits_add)
     284{
     285        uint32_t value = pio_read_32(rtl8139->io_port + reg_offset);
     286        value |= bits_add;
     287        pio_write_32(rtl8139->io_port + reg_offset, value);
     288}
     289
    268290/**  Unset selected bits in 8bit register
    269291 *
     
    279301        pio_write_8(rtl8139->io_port + reg_offset, value);
    280302}
     303
     304/**  Unset selected bits in 32bit register
     305 *
     306 *   @param rtl8139     The rtl8139 structure
     307 *   @param reg_offset  Register offset in the device IO space
     308 *   @param bits_add    The mask of bits to remove
     309 */
     310inline static void rtl8139_hw_reg_rem_32(rtl8139_t * rtl8139, size_t reg_offset,
     311    uint32_t bits_add)
     312{
     313        uint32_t value = pio_read_32(rtl8139->io_port + reg_offset);
     314        value &= ~bits_add;
     315        pio_write_32(rtl8139->io_port + reg_offset, value);
     316}
     317
    281318
    282319static int rtl8139_set_addr(ddf_fun_t *fun, const nic_address_t *);
     
    834871
    835872        /* Turn the interrupts on again */
    836         rtl8139_hw_int_set(rtl8139);
     873        rtl8139_hw_int_enable(rtl8139);
    837874};
    838875
     
    918955
    919956        rtl8139->int_mask = RTL_DEFAULT_INTERRUPTS;
    920         rtl8139_hw_int_set(rtl8139);
     957        rtl8139_hw_int_enable(rtl8139);
    921958
    922959        int rc = irc_enable_interrupt(rtl8139->irq);
     
    20832120                /* Disable timer interrupts while working with timer-related data */
    20842121                rtl8139->int_mask = 0;
    2085                 rtl8139_hw_int_set(rtl8139);
     2122                rtl8139_hw_int_enable(rtl8139);
    20862123
    20872124                rtl8139->poll_timer = new_timer;
     
    21062143        }
    21072144
    2108         rtl8139_hw_int_set(rtl8139);
     2145        rtl8139_hw_int_enable(rtl8139);
    21092146
    21102147        fibril_mutex_unlock(&rtl8139->rx_lock);
Note: See TracChangeset for help on using the changeset viewer.