27 Feb, 2007

5 commits


06 Feb, 2007

3 commits

  • Get rid of the rxramfull tasklet, and let the NAPI poll routine
    deal with this situation. (The rxramfull interrupt is simply
    stating that the h/w has run out of room for incoming packets).

    Signed-off-by: Linas Vepstas
    Cc: James K Lewis
    Cc: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • This patch adds net_ratelimit to many of the printks in order to
    limit extraneous warning messages (created in response to Bug 28554).
    This patch supercedes all previous ratelimit patches.
    This has been tested, please apply.

    From: James K Lewis
    Signed-off-by: James K Lewis
    Signed-off-by: Linas Vepstas
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • The current driver code performs 512 DMA mappings of a bunch of
    32-byte ring descriptor structures. This is silly, as they are
    all in contiguous memory. This patch changes the code to
    dma_map_coherent() each rx/tx ring as a whole.

    Signed-off-by: Linas Vepstas
    Cc: James K Lewis
    Cc: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     

30 Nov, 2006

2 commits

  • Correct a problem seen on later kernels running the NetPIPE application.
    Specifically, NetPIPE would begin running very slowly at the 1533 packet
    size. It was determined that Spidernet slowed with an idle DMA engine.

    Signed-off-by: James K Lewis
    Signed-off-by: Linas Vepstas
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • In an earlier patch, code was added to pad packets that were less that
    ETH_ZLEN (60) bytes using the skb_pad function. This has caused hangs when
    accessing certain NFS mounted file systems. This patch removes the check
    and solves the NFS problem. The driver, with this patch, has been tested
    extensively. Please apply.

    Signed-off-by: James K Lewis
    Cc: Stephen Hemminger
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    James K Lewis
     

11 Oct, 2006

6 commits

  • Cosmetic patch: give the variable holding the numer of descriptors
    a more descriptive name, so to avoid confusion.

    Signed-off-by: Linas Vepstas
    Cc: James K Lewis
    Cc: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • Implement basic low-watermark support for the transmit queue.
    Hardware low-watermarks allow a properly configured kernel
    to continously stream data to a device and not have to handle
    any interrupts at all in doing so. Correct zero-interrupt
    operation can be actually observed for this driver, when the
    socket buffer is made large enough.

    The basic idea of a low-watermark interrupt is as follows.
    The device driver queues up a bunch of packets for the hardware
    to transmit, and then kicks the hardware to get it started.
    As the hardware drains the queue of pending, untransmitted
    packets, the device driver will want to know when the queue
    is almost empty, so that it can queue some more packets.

    If the queue drains down to the low waterark, then an interrupt
    will be generated. However, if the kernel/driver continues
    to add enough packets to keep the queue partially filled,
    no interrupt will actually be generated, and the hardware
    can continue streaming packets indefinitely in this mode.

    The impelmentation is done by setting the DESCR_TXDESFLG flag
    in one of the packets. When the hardware sees this flag, it will
    interrupt the device driver. Because this flag is on a fixed
    packet, rather than at fixed location in the queue, the
    code below needs to move the flag as more packets are
    queued up. This implementation attempts to keep the flag
    at about 1/4 from "empty".

    Signed-off-by: Linas Vepstas
    Signed-off-by: James K Lewis
    Acked-by: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • The current receive interrupt mask sets a bogus bit that doesn't even
    belong to the definition of this register. Remove it.

    Signed-off-by: Linas Vepstas
    Cc: James K Lewis
    Cc: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • This patch fixes the names of a few fields in the DMA control
    register. There is no functional change.

    Signed-off-by: Linas Vepstas
    Cc: James K Lewis
    Cc: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • This patch increases the Burst Address alignment from 64 to 1024 in the
    Spidernet driver. This improves transmit performance for large packets.

    From: James K Lewis
    Signed-off-by: James K Lewis
    Signed-off-by: Linas Vepstas
    Acked-by: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     
  • This patch adds version information as reported by
    ethtool -i to the Spidernet driver.

    From: James K Lewis
    Signed-off-by: James K Lewis
    Signed-off-by: Linas Vepstas
    Acked-by: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Linas Vepstas
     

23 Sep, 2006

1 commit


14 Sep, 2006

1 commit


20 Aug, 2006

1 commit


18 Jul, 2006

1 commit

  • With this patch TX queue descriptors are not chained per default any more.
    The pointer to next descriptor is set only when next descriptor is prepaired
    for transfer. Also the mechanism of checking wether Spider is ready has been
    changed: it checks not for CARDOWNED flag in status of previous descriptor
    but for a TXDMAENABLED flag in Spider's register.

    Signed-off-by: Maxim Shchetynin
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Jens Osterkamp
    Signed-off-by: Jeff Garzik

    Jens Osterkamp
     

09 May, 2006

1 commit


17 Jan, 2006

2 commits

  • Performance optimizations, changes in these areas:
    - RX and TX checksum offload
    - correct maximum MTU
    - don't use TX interrupts anymore, use a timer instead
    - remove some superfluous barriers
    - improve RX RAM full handling

    From: Utz Bacher
    Signed-off-by: Jens Osterkamp
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Arnd Bergmann
     
  • The driver incorrectly used dma_addr_t to describe
    HW structures and consequently broke when that type
    was changed in 2.6.15-rc.

    This changed spidernet to use u32 for 32 bit HW defined
    structure elements.

    From: Jens Osterkamp
    Signed-off-by: Jens Osterkamp
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Arnd Bergmann
     

07 Sep, 2005

1 commit

  • This patch adds a driver for a new 1000 Mbit ethernet NIC. It is
    integrated on the south bridge that is used for our Cell Blades.

    The code gets the MAC address from the Open Firmware device tree, so it
    won't compile on platforms other than ppc64.

    This is the first public release, so I don't expect the first version to
    get merged, but I'd aim for integration within the 2.6.13 time frame.

    Cc: Utz Bacher
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Jens Osterkamp