12 Sep, 2008

1 commit


11 Sep, 2008

1 commit


16 Aug, 2008

7 commits

  • This patch updates the version number to 3.94.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • Ethtool stats are 64-bits in length. net_device_stats members are
    unsigned long types. When gathering information for
    a get_ethtool_stats call, the driver will call a driver-private,
    inlined get_stat64() function, which returns an unsigned long value.
    This call will inadvertently mask off the upper 32-bits of a stat on
    32-bit machines.

    This patch defines a new get_estat() inline function and modifies the
    ESTAT_ADD() macro to use it.

    Signed-off-by: Stefan Buehler
    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Stefan Buehler
     
  • The git commit 7c5026aa9b81dd45df8d3f4e0be73e485976a8b6 ("tg3: Add
    link state reporting to UMP firmware") introduced code that waits for
    previous firmware events to be serviced before attempting to submit a
    new event. Unfortunately that patch contained a bug that cause the
    driver to wait 2.5 seconds, rather than 2.5 milliseconds as intended.
    This patch fixes that bug.

    This bug revealed that not all firmware versions service driver events
    though. Since we do not know which versions of the firmware do and don't
    service these events, the driver needs some way to minimize the effects
    of the delay. This patch solves the problem by recording a jiffies
    timestamp when it submits an event to the hardware. If the jiffies
    counter shows that 2.5 milliseconds have already passed, a wait is not
    needed and the driver can proceed to submit a new event.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • The ENABLE_ASF flag is set when DASH is enabled on the NIC, but DASH
    does not run on the RX CPU. Instead it runs on the APE.
    Consequently, the driver does not need to send "driver alive" updates
    to the RX CPU when the APE is present.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • Broadcom's DASH (Desktop and mobile Architecture for System Hardware)
    implementation requires that the driver preserve particular register
    settings. If the driver does not preserve them, communication with
    the DASH firmware will be lost.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • Recently, more status bits have been added to the APE status register.
    This patch refines the status register check so that the driver can
    send more events than it would have otherwise.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • If the driver resets the chip while the APE is performing a register
    access, that register access will never complete and the APE will hang
    indefinitely. To prevent this race condition, the driver must acquire
    an APE mutex before resetting the chip. The APE will not attempt a
    register access until it acquires this lock.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     

05 Aug, 2008

1 commit

  • This patch fixes the 'scheduling while atomic' errors introduced by
    commit 12dac0756d357325b107fe6ec24921ec38661839 ("tg3: adapt tg3 to
    use reworked PCI PM code").

    The first hunk of the patch removes an unnecessary
    tg3_set_power_state() call. The chip will already be in the D0 state
    either due to a chip reset or through a previous call to
    tg3_set_power_state().

    The second hunk of the patch moves the tg3_set_power_state() call
    outside the critical section guarded by tg3_full_lock() and
    tg3_full_unlock() functions. The power state of the device is and
    should be outside the lock's domain and all other
    tg3_set_power_state() calls support this.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     

31 Jul, 2008

1 commit


10 Jun, 2008

5 commits

  • Conflicts:

    drivers/net/tg3.c
    drivers/net/wireless/rt2x00/rt2x00dev.c
    net/mac80211/ieee80211_i.h

    David S. Miller
     
  • This patch increments the version to 3.92.1.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • On 5761 non-e devices, two problems prevent the administrator from
    overriding the WOL settings in the device's NVRAM.

    The first problem is that GPIO 0 and GPIO 2 have been swapped. This
    change prevented the administrator from turning on WOL when it is
    disabled in NVRAM. The fix is to add a new path for the 5761 that
    swaps the two GPIOs in the code as well.

    The second problem is that GPIO 1 could not be toggled by the driver
    because the GPIO is shared with the debug UART GPIO. This will prevent
    the administrator from being able to turn WOL off if it was enabled in
    NVRAM. The fix is to always disable the debug UART after a GRC reset.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • This patch fixes a problem where the TG3_FLAG_10_100_ONLY flag was
    testing against the wrong flags variable.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • The git commit ef167e27039eeaea6d3cdd5c547b082e89840bdd entitled
    "Fix supporting flowctrl code" introduced a bug that prevents 5714S,
    5715S and 5780S devices from falling back to a forced link mode. The
    problem is that the added flow control check will always fail if flow
    control is set to autoneg and either RX or TX (or both) flow control
    is enabled. The driver defaults to setting flow control to autoneg
    and advertises both RX and TX flow control.

    The fix is to remove the errant check.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     

29 May, 2008

9 commits


23 May, 2008

1 commit


03 May, 2008

5 commits

  • This patch updates the version number to 3.92.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • All variants of the 5714, 5715, and 5780 offer a feature called the
    "Universal Management Port". This feature is implemented in firmware
    and is largely transparent to the driver, except...

    It turns out that the UMP firmware needs to know the current status
    of the link. Because the firmware cannot touch the PHY registers while
    the driver is in control of the device, it needs the driver to report
    link status changes through an additional handshaking mechanism.
    Without this handshake, it has been observed in the field that the UMP
    firmware will not operate correctly.

    This patch implements the new handshake with the UMP firmware. Since
    the handshake uses the same mechanism ASF heartbeats use, code was
    added to detect and wait for completion of a pending previous event.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • A CPMU related loopback test bug existed for AX revisions of the 5761.
    While that errata has been fixed, the CPMU still slows down the core
    clock too far to run the loopback test successfully. This patch
    disables the CPMU LINK_SPEED mode just like we do with the AX
    revisions of the 5761 and all revisions of the 5784.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • The 5761 NVRAM sizes assigned to the nvram_size member are half as big
    as they should be. This patch corrects the NVRAM sizes and replaces
    the hardcoded constants with preprocessor constants for readability.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • The MI clock is not configured correctly on adapters with the CPMU
    present. The tg3 driver has code which statically sets the MI clock to
    be a fraction of the speed at which the core clock is running.
    However, the CPMU can change the adapter's core clock frequency based
    on operating conditions. Consequently, the MI will run slow when the
    core's clock has been slowed down.

    There is a new 500KHz constant frequency clock available on adapters
    with a CPMU. This patch removes the static core clock scaling and
    configures the MI clock to use this new 500KHz clock instead.

    Running the MI clock at slower speeds will not directly result in data
    corruption, but it does challenge the PHY read and write routine timeouts.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     

29 Apr, 2008

1 commit

  • Some drivers have duplicated unlikely() macros. IS_ERR() already has
    unlikely() in itself.

    This patch cleans up such pointless code.

    Signed-off-by: Hirofumi Nakagawa
    Acked-by: David S. Miller
    Acked-by: Jeff Garzik
    Cc: Paul Clements
    Cc: Richard Purdie
    Cc: Alessandro Zummo
    Cc: David Brownell
    Cc: James Bottomley
    Cc: Michael Halcrow
    Cc: Anton Altaparmakov
    Cc: Al Viro
    Cc: Carsten Otte
    Cc: Patrick McHardy
    Cc: Paul Mundt
    Cc: Jaroslav Kysela
    Cc: Takashi Iwai
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirofumi Nakagawa
     

25 Apr, 2008

1 commit

  • Fix the following sparse warning :

    drivers/net/tg3.c:4025:3: warning: context imbalance in 'tg3_restart_hw'
    - unexpected unlock

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     

20 Apr, 2008

1 commit

  • Herbert Xu's commit fb93134dfc2a6e6fbedc7c270a31da03fce88db9, entitled
    "[TCP]: Fix size calculation in sk_stream_alloc_pskb", has triggered a
    bug in the 5701 where the 5701 DMA engine will corrupt outgoing
    packets. This problem only happens when the starting address of the
    packet matches a certain range of offsets and only when the 5701 is
    placed downstream of a particular Intel bridge.

    This patch detects the problematic bridge and if present, readjusts the
    starting address of the packet data to a dword aligned boundary.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     

13 Apr, 2008

1 commit

  • The driver stores the PCI resource addresses into 'unsigned long' variable
    before calling ioremap_nocache() on them. This warrants kernel oops when the
    registers are accessed on PPC 44x platforms which (being 32-bit) have PCI
    memory space mapped beyond 4 GB.

    The arch/ppc/ kernel has a fixup in ioremap() that creates an illusion that
    the PCI memory resource is mapped below 4 GB, but arch/powerpc/ code got rid
    of this trick, having instead CONFIG_RESOURCES_64BIT enabled.

    [ Bump driver version and release date -DaveM ]

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     

04 Apr, 2008

1 commit

  • The 5784 B step and newer chips require the PHY DSPs to be fine-tuned
    based on one-time programmable values stored in the chip. This is
    essential to achieve optimal PHY operations especially when using
    long cables. We also need to properly handle the 10Mbit RX bit in the
    CPMU_CTRL register during PHY reset.

    Update version to 3.89.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     

21 Mar, 2008

1 commit


24 Feb, 2008

1 commit

  • When asked to blink LEDs the tg3 driver behaves when using:
    ethtool -p ethX
    The default value for data is zero, and other drivers interpret this
    as blink forever (or at least a really long time). The tg3 driver
    interprets this as blink once. All drivers should have the same
    behaviour.

    Signed-off-by: Stephen Hemminger
    Acked-by: Michael Chan
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

29 Jan, 2008

2 commits