1. 10 Jan, 2004 13 commits
    • François Romieu's avatar
      [netdrvr r8169] fix RX · e5907045
      François Romieu authored
      Brown paper bag time: the Rx descriptors are contiguous and EORbit only
      marks the last descriptor in the array. OWNbit implicitly marks the end
      of the Rx descriptors segment which is owned by the nic.
      e5907045
    • François Romieu's avatar
    • François Romieu's avatar
    • François Romieu's avatar
      [netdrvr r8169] Driver forgot to update the transmitted bytes counter. · a5ffe929
      François Romieu authored
      Originally done in rtl8169_start_xmit() by Realtek.
      a5ffe929
    • François Romieu's avatar
      [netdrvr r8169] Merge of changes from Realtek: · 5fed336c
      François Romieu authored
      - register voodoo in rtl8169_hw_start().
      5fed336c
    • François Romieu's avatar
      [netdrvr r8169] Merge of timer related changes from Realtek: · cd68bcbf
      François Romieu authored
      - changed their timeout value from 100 to HZ to trigger rtl8169_phy_timer();
      - s/TX_TIMEOUT/RTL8169_TX_TIMEOUT/ to have RTL8169_{TX/PHY}_TIMEOUT.
      cd68bcbf
    • François Romieu's avatar
      [netdrvr r8169] Merge of changes done by Realtek to rtl8169_init_one(): · efdc1590
      François Romieu authored
      - phy capability settings allows lower or equal capability as suggested
        in Realtek's changes;
      - I/O voodoo;
      - no need to s/mdio_write/RTL8169_WRITE_GMII_REG/;
      - s/rtl8169_hw_PHY_config/rtl8169_hw_phy_config/;
      - rtl8169_hw_phy_config(): ad-hoc struct "phy_magic" to limit duplication
        of code (yep, the u16 -> int conversions should work as expected);
      - variable renames and whitepace changes ignored.
      efdc1590
    • François Romieu's avatar
      [netdrvr r8169] Add {mac/phy}_version. · c69ac7bb
      François Romieu authored
      - change of identification logic in rtl8169_init_board();
      - {chip/rtl_chip}_info are merged in rtl_chip_info;
      - misc style nits (lazy braces, SHOUTING MACROS from realtek converted to
        functions).
      c69ac7bb
    • François Romieu's avatar
      [netdrvr r8169] Rx copybreak for small packets. · efdfea6a
      François Romieu authored
      - removal of rtl8169_unmap_rx() (unneeded as for now).
      efdfea6a
    • François Romieu's avatar
      [netdrvr r8169] Conversion of Tx data buffers to PCI DMA: · 70b64316
      François Romieu authored
      - endianness is kept in a fscked state as it is in the original code
        (will be adressed in a later patch);
      - buf_addr of an unmapped descriptor is always set to the same value 
        (cf rtl8169_unmap_tx_skb);
      - nothing fancy, really.
      70b64316
    • François Romieu's avatar
      [netdrvr r8169] rtl8169_start_xmit fixes: · 7f69071e
      François Romieu authored
      - it forgot to update stats if the skb couldn't be expanded;
      - it didn't free it either if the descriptor was not available;
      - move the spin_unlock nearer of the exit point instead of duplicating
        it in the new branch.
      7f69071e
    • François Romieu's avatar
      [netdrvr r8169] Conversion of Rx data buffers to PCI DMA · 5231873b
      François Romieu authored
      - endianness is kept in a fscked state as it is in the original code
        (will be adressed in a later patch);
      - rtl8169_rx_clear() walks the buffer ring and releases the allocated
        data buffers. It needs to be used in two places: 
        - rtl8169_init_ring() failure path;
        - normal device release (i.e. rtl8169_close);
      - rtl8169_free_rx_skb() releases a Rx data buffer. Mostly an helper
        for rtl8169_rx_clear(). As such it must:
        - unmap the memory area;
        - release the skb;
        - prevent the ring descriptor from being used again;
      - rtl8169_alloc_rx_skb() prepares a Rx data buffer for use.
        As such it must:
        - allocate an skb;
        - map the memory area;
        - reflect the changes in the ring descriptor.
        This function is balanced by rtl8169_free_rx_skb().
      - rtl8169_unmap_rx() simply helps with the 80-columns limit.
      - rtl8169_rx_fill() walks a given range of the buffer ring and
        try to turn any descriptor into a ready to use one. It returns the
        count of modified descriptors and exits if an allocation fails.
        It can be seen as balanced by rtl8169_rx_clear(). Motivation:
        - partially abstract the (usually big) piece of code for the refill
          logic at the end of the Rx interrupt;
        - factorize the refill logic and the initial ring setup.
      - simple conversion of rtl8169_rx_interrupt() without rx_copybreak
        (will be adressed in a later patch).
      5231873b
    • François Romieu's avatar
      [netdrvr r8169] Conversion of Rx/Tx descriptors to consistent DMA: · 902f3218
      François Romieu authored
      - use pci_alloc_consistent() for Rx/Tx descriptors in rtl8169_open()
        (balanced by pci_free_consistent() on error path as well as in
        rtl8169_close());
      - removal of the fields {Rx/Tx}DescArrays in struct rtl8169_private
        as there is no need to store a non-256 bytes aligned address any more;
      - fix for rtl8169_open() leak when RxBufferRings allocation fails.
        Said allocation is pushed to rtl8169_init_ring() as part of an evil
        cunning plan.
      902f3218
  2. 09 Jan, 2004 3 commits
  3. 08 Jan, 2004 24 commits