commit 920e37f76b19b4a3d8a1a3144cd6ee24e0e7f5b4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri May 2 16:49:50 2008 -0700

    tg3: Update version to 3.92
    
    This patch updates the version number to 3.92.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7c5026aa9b81dd45df8d3f4e0be73e485976a8b6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri May 2 16:49:29 2008 -0700

    tg3: Add link state reporting to UMP firmware
    
    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 <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 109115e1991824b88306b374b763d6857b292aeb
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri May 2 16:48:59 2008 -0700

    tg3: Fix ethtool loopback test for 5761 BX devices
    
    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 <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fd1122a2593d0bbe19856e3943c859ebfe563583
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri May 2 16:48:36 2008 -0700

    tg3: Fix 5761 NVRAM sizes
    
    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 <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8ef214288622bf523a3b3096958292a1c63132ad
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri May 2 16:47:53 2008 -0700

    tg3: Use constant 500KHz MI clock on adapters with a CPMU
    
    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 <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 801678c5a3b4c79236970bcca27c733f5559e0d1
Author: Hirofumi Nakagawa <hnakagawa@miraclelinux.com>
Date:   Tue Apr 29 01:03:09 2008 -0700

    Remove duplicated unlikely() in IS_ERR()
    
    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 <hnakagawa@miraclelinux.com>
    Acked-by: David S. Miller <davem@davemloft.net>
    Acked-by: Jeff Garzik <jeff@garzik.org>
    Cc: Paul Clements <paul.clements@steeleye.com>
    Cc: Richard Purdie <rpurdie@rpsys.net>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Cc: David Brownell <david-b@pacbell.net>
    Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
    Cc: Michael Halcrow <mhalcrow@us.ibm.com>
    Cc: Anton Altaparmakov <aia21@cantab.net>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Carsten Otte <cotte@de.ibm.com>
    Cc: Patrick McHardy <kaber@trash.net>
    Cc: Paul Mundt <lethal@linux-sh.org>
    Cc: Jaroslav Kysela <perex@perex.cz>
    Cc: Takashi Iwai <tiwai@suse.de>
    Acked-by: Mike Frysinger <vapier@gentoo.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 78c6146f16d45f52c33ddb6b48c10fc6cfc53659
Author: Eric Dumazet <dada1@cosmosbay.com>
Date:   Thu Apr 24 23:33:06 2008 -0700

    tg3: sparse cleanup
    
    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 <dada1@cosmosbay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 41588ba1ae166eaba0a70abf2d7ff064ad9331d3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Apr 19 18:12:33 2008 -0700

    tg3: 5701 DMA corruption fix
    
    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 <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2de58e30db3f7e83592e22fb459dd6695b648889
Author: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date:   Sat Apr 12 18:30:58 2008 -0700

    tg3: fix MMIO for PPC 44x platforms
    
    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 <sshtylyov@ru.mvista.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b2a5c19ca0315723cecb9489ff8b67c4f17367b4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Apr 3 21:44:44 2008 -0700

    [TG3]: Add PHY workaround for 5784
    
    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 <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7582a33557cc6dc42b4c6918c6e7f8e465b72a70
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Mar 20 15:53:15 2008 -0700

    [TG3]: Fix build warning on sparc32.
    
    Sparc MAC address support should be protected consistently
    with CONFIG_SPARC, but there was a stray CONFIG_SPARC64
    case.
    
    Bump driver version and release date.
    
    Reported by Andrew Morton.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 759afc31332aed66bde20743e7e2d1e47b08aaeb
Author: Stephen Hemminger <shemminger@vyatta.com>
Date:   Sat Feb 23 19:51:59 2008 -0800

    tg3: ethtool phys_id default
    
    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 <shemminger@vyatta.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 79ea13ce07c951bb4d95471e7300baa0f1be9e78
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Jan 24 02:06:46 2008 -0800

    NULL noise in drivers/net
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 255f97b3117cbe10b2493f7f12d66a81dfbcdf43
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:10:38 2007 -0800

    [TG3]: Update version to 3.87
    
    This patch updates the version number to 3.87.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ef167e27039eeaea6d3cdd5c547b082e89840bdd
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:10:01 2007 -0800

    [TG3]: Fix supporting flowctrl code
    
    This patch does three things.  It modifies tg3_setup_flow_control() to
    use the administrator requested flow control settings if
    autonegotiation is turned off.  It slightly modifies the
    tg3_setup_fiber_mii_phy() function to account for this new use case.
    And finally, it does the same for tg3_setup_copper_phy().
    
    The copper modifications are more than a small multi-line change.  The
    new code makes an attempt to avoid a link renegotiation if the link is
    active at half duplex and the only difference between the current
    advertised settings and requested advertised settings is the
    flow control advertisements.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5be73b471bbed9ca61ddfd952a2cb7701f94f034
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:09:29 2007 -0800

    [TG3]: Correct sw autoneg flow control advertisements
    
    This patch modifies the software autoneg code to use the administrator
    specified flow control parameters.  Since the autonegotiation code uses
    alternative flow control enumerations, the 1000-BaseX utility functions
    are used and code was added to convert the definitions to and from the
    alternate enumerations.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 82cd3d11f359763da445a7636ee683a922aaf025
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:09:00 2007 -0800

    [TG3]: Correct 5704S flowctrl advertisements
    
    This patch modifies the 5704S hardware autoneg code to use the
    administrator specified flow control parameters.  Since the 5704S uses
    device specific flow control enumerations, the 1000-BaseX utility
    functions are used and code was added to convert the definitions to and
    from the proprietary enumerations.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c98f6e3be1d1b9bc9299d84da4f0b1ea9a50f392
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:08:32 2007 -0800

    [TG3]: Replace some magic 5704S constants
    
    This patch replaces magic values with preprocessor definitions for
    the sg_dig_ctrl and sg_dig_status registers.  This is preparatory work
    for the next patch.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ba4d07a8483e6ec0de3194960f8aca862711454c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:08:00 2007 -0800

    [TG3]: Add 1000T & 1000X flowctl adv helpers
    
    This patch adds two functions designed to convert abstract TX & RX
    flow control parameters to 1000-BaseT and 1000-BaseX autonegotiation
    advertisements.  Code that uses standard definitions which statically
    advertises TX & RX flow control has been replaced with code that
    configures the advertisements based on administrator dictated
    preferences.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 95937268b7c4c334a3d98f7177c7d5a00b74b2e7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:06:19 2007 -0800

    [TG3]: Add 1000T & 1000X flowctrl resolvers
    
    This patch adds two new utility functions to resolve flow control.  One
    function resolves flow control based on 1000-BaseT register definitions.
    The other resolves flow control based on 1000-Base X register
    definitions.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8d018621085b8d00511768c343d941676bd77ee9
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 20 20:05:44 2007 -0800

    [TG3]: Separate requested and actual flow control parameters
    
    This patch removes the TX and RX flow control flags from tg3_flags and
    adds two new flow control variables, flowctrl and active_flowctrl.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d66453722873e1595b7934acbdcd5cdfa6982d6c
Author: Joe Perches <joe@perches.com>
Date:   Thu Dec 20 04:06:59 2007 -0800

    [TG3]: Use print_mac
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 286e310f94b9459f3fa975333781c969b1041522
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Dec 17 23:00:31 2007 -0800

    [TG3]: Endianness bugfix.
    
    tg3_nvram_write_block_unbuffered() is reading data from nvram into
    allocated buffer before overwriting a part of it with user-supplied
    data.  Then it feeds the entire page back to nvram.  It should be
    storing the words it had read as little-endian, not as host-endian.
    Note that tg3_set_eeprom() does exactly that for padding the same
    data to full words before it gets passed down to tg3_nvram_write_block()
    and then to tg3_nvram_write_block_unbuffered().
    
    Moreover, when we get to sending the entire thing back to nvram, we
    go through it word-by-word, doing essentially
    	writel(swab32(le32_to_cpu(word)), ...)
    so if we want them to reach the card in host-independent endianness,
    we'd better really have all that buffer filled with fixed-endian.
    For user-supplied part we obviously do have that (it's an array of
    octets memcpy'd in), ditto for padding of user-supplied part to word
    boundaries (taken care of in tg3_set_eeprom()).  The rest of the
    buffer gets filled by tg3_nvram_write_block_unbuffered() and it would
    damn better be consistent with that (and with tg3_get_eeprom(), while
    we are at it - there we also convert the words read from nvram to
    little-endian before returning the buffer to user).
    
    The bug should get triggered on big-endian boxen when set_eeprom is done
    for less than entire page.  Then the words that should've been unaffected
    at all will actually get byteswapped in place in nvram.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b9fc7dc514566e9788c7f064bb08f8b6e2fe6f72
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Dec 17 22:59:57 2007 -0800

    [TG3]: Endianness annotations.
    
    Fixed misannotations, introduced a new helper - tg3_nvram_read_le().
    It gets __le32 * instead of u32 * and puts there the value converted
    to little-endian.  A lot of callers of tg3_nvram_read() were doing
    that; converted them to tg3_nvram_read_le().
    
    At that point the driver is practically endian-clean; the only remaining
    place is an actual bug, AFAICS; will be dealt with in the next patch.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 458c096ed787b2572303a7087d23bfab06b450be
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:23:21 2007 -0800

    [TG3]: Update version to 3.86
    
    This patch updates the version number to 3.86
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3bebab591413929c405925a8fdd98f5b0d660e39
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:22:40 2007 -0800

    [TG3]: MII => TP
    
    This patch changes the PHY type reported through ethtool for copper
    devices from MII to TP.  The latter is more accurate.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b5af7126ea7586eb8f030280c027611c42a6a9c7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:22:02 2007 -0800

    [TG3]: Add A1 revs
    
    This patch adds the A1 revision of 5784, 5764, and 5761, and applies all
    previous bugfixes.  In places where the list of devices gets too long,
    the patch uses a new TG3_FLG3_5761_5784_AX_FIXES flag instead.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5f5c51e3d473d8ddc0c32156c2b27e2fe92b9b57
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:19:37 2007 -0800

    [TG3]: Increase the PCI MRRS
    
    Previous devices hardcoded the PCI Maximum Read Request Size to 4K.  To
    better comply with the PCI spec, the hardware now defaults the MRRS to
    512 bytes.  This will yield poor driver performance if left untouched.
    This patch increases the MRRS to 4K on driver initialization.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit aa6c91fe5913faa2cd2a62de993a3130799412b1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:18:04 2007 -0800

    [TG3]: Prescaler fix
    
    Internal hardware timers become inaccurate after link events.  Clock
    frequency switches performed by the CPMU fail to adjust timer
    prescalers.  The fix is to detect core clock frequency changes during
    link events and adjust the timer prescalers accordingly.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5f60891b80f1a0f0a0015b084f4838ae8b9637c7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:17:07 2007 -0800

    [TG3]: Limit 5784 / 5764 to MAC LED mode
    
    Most 5784 / 5764 LED modes do not work as expected because of a hardware
    bug.  This patch forces the LED mode to be in MAC LED mode.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 662f38d242488cfdcda7b3684ac610d3e4d568a7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:16:17 2007 -0800

    [TG3]: Disable GPHY autopowerdown
    
    New CPMU devices contend with the GPHY for power management.  The GPHY
    autopowerdown feature is enabled by default in the PHY and thus needs to
    be disabled after every PHY reset.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e875093c9659d2a9f3923aa9ee1b89ef40cf95b9
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:11:51 2007 -0800

    [TG3]: CPMU adjustments for loopback tests
    
    This patch adds the LINK_SPEED mode to the list of CPMU modes that can
    cause the loopback tests to fail.  These bugs are planned to be fixed in
    future revisions of the chip, so the patch qualifies the fixes as such.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a5767dec1980463aef5614b7ad8a800bb4f4c353
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:10:58 2007 -0800

    [TG3]: Fix nvram selftest failures
    
    Newer devices contain bootcode in the chip's private ROM area.  This
    bootcode is called selfboot.  Selfboot can be patched in the device's
    NVRAM and the patches can have several formats.  In one particular
    format, the checksum calculation needs to be slightly modified.  This
    patch adjusts the NVRAM test code for that case, and add support for the
    missing formats.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9acb961e7d780291659bf950b3b718ff9e085620
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:10:06 2007 -0800

    [TG3]: 5784 / 5764 DMA engine lockup fix
    
    5784 and 5764 devices lock up when the link speed is 10Mbps, the CPMU
    link speed mode is enabled, and the MAC clock is running at 1.5Mhz.  The
    fix is to run the MAC clock at faster speeds.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 84af67fdf07c4fce664dbca87a8d5e2802901bff
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:08:59 2007 -0800

    [TG3]: APE flag fix
    
    This patch corrects a bug where the ENABLE_APE flag was tested against
    the wrong flag variable.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ce057f01956bfcb3cb8588091000ae546be78e00
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:08:03 2007 -0800

    [TG3]: 5784 / 5764 GPHY power down fix
    
    5784 and 5764 devices fail to link / pass traffic after one load /
    unload cycle.  This happens because of a hardware bug in the new CPMU.
    During normal operation, the MAC depends on the PHY clock being
    available.  When the PHY is powered down, the clock the MAC depends on
    is disabled.  The fix is to switch the MAC clock to an alternate source
    before powering down the PHY, and to restore the MAC clock to the PHY
    source upon device resume.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c88864df27590b80fca4a991e0c257d1757cec41
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 12 21:07:01 2007 -0800

    [TG3]: Fix 5761 PXEboot crash
    
    When 5761 devices boot the machine using PXEboot, PXE leaves the device
    active when it terminates.  The tg3 driver has code to detect this
    condition and resets the device during initialization.  On 5761 devices,
    device resets involve sending a driver state update message to the APE
    on the 5761.  However, during this initialization stage, communications
    to the APE registers have not yet been set up.  The driver then
    dereferences a NULL pointer and crashes the machine.  The fix is to move
    the APE register access setup earlier in the initialization code to
    cover this condition.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ba698ad4b7e466cbb4a8bde6b9da8080ab06808d
Author: David Miller <davem@davemloft.net>
Date:   Thu Oct 25 01:16:30 2007 -0700

    PCI: Add quirk for devices which disable MSI when INTX_DISABLE is set.
    
    A reasonably common problem with some devices is that they will
    disable MSI generation when the INTX_DISABLE bit is set in the
    PCI_COMMAND register.
    
    Quirk this explicitly, guarding the pci_intx() calls in msi.c with
    this quirk indication.
    
    The first entries for this quirk are for 5714 and 5780 Tigon3 chips,
    and thus we can remove the workaround code from the tg3.c driver.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit 33b0c4fe6d0dd19fc7c9b801855f55c5260f2858
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Oct 21 16:22:38 2007 -0700

    [TG3]: Update version to 3.85
    
    This patch updates the version number to 3.85.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8a6eac90e21633e054e17d21454a2c26824aeb18
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Oct 21 16:17:55 2007 -0700

    [TG3]: PCI command adjustment
    
    This patch changes the way the driver works with the PCI command
    register.  It adjusts the access size from dwords to words.  This patch
    is done both as a PCI configuration space cleanup and as preparatory
    work for PCI error recovery.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9c8a620e7f85fff050a54697da44bbd1a66e8e0b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Oct 21 16:16:08 2007 -0700

    [TG3]: Add management FW version to ethtool report
    
    This patch appends the management firmware version to the bootcode
    firmware string reported through ethtool.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6c7af27c8a2e8b85cb235a2409d3b2093b18f77d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Oct 21 16:12:02 2007 -0700

    [TG3]: Add 5723 support
    
    This patch adds support for upcoming 5723 devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a52cefc80fc92981592c688d1c8067442afe4cec
Merge: fba956c... 4acad72...
Author: Linus Torvalds <torvalds@woody.linux-foundation.org>
Date:   Mon Oct 15 14:06:58 2007 -0700

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
    
    * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
      [IPV6]: Consolidate the ip6_pol_route_(input|output) pair
      [TCP]: Make snd_cwnd_cnt 32-bit
      [TCP]: Update the /proc/net/tcp documentation
      [NETNS]: Don't panic on creating the namespace's loopback
      [NEIGH]: Ensure that pneigh_lookup is protected with RTNL
      [INET]: kmalloc+memset -> kzalloc in frag_alloc_queue
      [ISDN]: Fix compile with CONFIG_ISDN_X25 disabled.
      [IPV6]: Replace sk_buff ** with sk_buff * in input handlers
      [SELINUX]: Update for netfilter ->hook() arg changes.
      [INET]: Consolidate the xxx_put
      [INET]: Small cleanup for xxx_put after evictor consolidation
      [INET]: Consolidate the xxx_evictor
      [INET]: Consolidate the xxx_frag_destroy
      [INET]: Consolidate xxx_the secret_rebuild
      [INET]: Consolidate the xxx_frag_kill
      [INET]: Collect common frag sysctl variables together
      [INET]: Collect frag queues management objects together
      [INET]: Move common fields from frag_queues in one place.
      [TG3]: Fix performance regression on 5705.
      [ISDN]: Remove local copy of device name to make sure renames work.
      ...

commit e9edda697ed7697f1288d0656570e49c47e204ae
Author: Alejandro Martinez Ruiz <alex@flawedcode.org>
Date:   Mon Oct 15 03:37:43 2007 +0200

    netdev: convert non-obvious instances to use ARRAY_SIZE()
    
    This will convert remaining non-obvious or naive calculations of array
    sizes to use ARRAY_SIZE() macro.
    
    Signed-off-by: Alejandro Martinez Ruiz <alex@flawedcode.org>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 114342f2d38439cb1a54f1f724fa38729b093c48
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Oct 15 02:12:26 2007 -0700

    [TG3]: Fix performance regression on 5705.
    
    A performance regression was introduced by the following commit:
    
        commit ee6a99b539a50b4e9398938a0a6d37f8bf911550
        Author: Michael Chan <mchan@broadcom.com>
        Date:   Wed Jul 18 21:49:10 2007 -0700
    
        [TG3]: Fix msi issue with kexec/kdump.
    
    In making that change, the PCI latency timer and cache line size
    registers were not restored after chip reset.  On the 5705, the
    latency timer gets reset to 0 during chip reset and this causes
    very poor performance.
    
    Update version to 3.84.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4fd7ab5949edfdf99be0ceef206c9d0b7f186318
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Oct 12 01:39:50 2007 -0700

    [TG3]: Refine napi poll loop.
    
    Need to read and store sblk->status_tag before checking for more work.
    The status tag is later written back to the hardware when enabling
    interrupts to acknowledge how much work has been processed.  If the
    order is reversed, we can end up acknowledging work we haven't
    processed.
    
    When we detect tx error, it is more correct to return the rx
    work_done so far instead of 0.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9ce768ead83216d394175c0a0d72bc527648c7d0
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 11 19:49:11 2007 -0700

    [TG3]: Fix APE induced regression
    
    This patch fixes a bug caused by the recent APE support added for 5761
    devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6f535763165331bb91277d7519b507fed22034e5
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Thu Oct 11 18:08:29 2007 -0700

    [NET]: Fix NAPI completion handling in some drivers.
    
    In order for the list handling in net_rx_action() to be
    correct, drivers must follow certain rules as stated by
    this comment in net_rx_action():
    
    		/* Drivers must not modify the NAPI state if they
    		 * consume the entire weight.  In such cases this code
    		 * still "owns" the NAPI instance and therefore can
    		 * move the instance around on the list at-will.
    		 */
    
    A few drivers do not do this because they mix the budget checks
    with reading hardware state, resulting in crashes like the one
    reported by takano@axe-inc.co.jp.
    
    BNX2 and TG3 are taken care of here, SKY2 fix is from Stephen
    Hemminger.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 414c66e00e9fb4572e38bd14e6cc570eae8c5a61
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Oct 10 18:03:56 2007 -0700

    [TG3]: Update version to 3.83
    
    Update to version 3.83.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0527ba358aa7594731e627842d493ae7f009dd57
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Oct 10 18:03:30 2007 -0700

    [TG3]: WOL defaults
    
    This patch enables WOL by default if out-of-box WOL is enabled in the
    NVRAM.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9936bcf68a7e4d33f080bba9ee03d156c75c91ee
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Oct 10 18:03:07 2007 -0700

    [TG3]: Add 5761 support
    
    This patch adds rest of the miscellaneous code required to support the
    5761.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0d3031d9e674cddd4c09731123ad252294cdf15f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Oct 10 18:02:43 2007 -0700

    [TG3]: Add 5761 APE support
    
    This patch adds support for the new APE block, present in 5761 chips.
    APE stands for Application Processing Engine.  The primary function of
    the APE is to process manageability traffic, such as ASF.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6b91fa02796292c322b20572188c74c1ef5bb02b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Oct 10 18:01:09 2007 -0700

    [TG3]: Add new 5761 NVRAM decode routines
    
    This patch adds a new 5761-specific NVRAM strapping decode routine.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 405d8e5cbbe5aca20cc745046b70831bfc5e4a8f
Author: Andy Gospodarek <andy@greyhouse.net>
Date:   Mon Oct 8 01:08:47 2007 -0700

    [TG3]: Fix ethtool autonegotiate flags.
    
    I recently noticed that when calling:
    
    # ethtool -s eth0 autoneg on
    
    on a 5722 (though I'm sure it's not specific to that card) that
    subsequent checks of the cards status looked like this:
    
    # ethtool eth0
    Settings for eth0:
            Supported ports: [ MII ]
            Supported link modes:   10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Half 1000baseT/Full
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Half 1000baseT/Full
            Advertised auto-negotiation: No        <---- This seems odd?!?
            Speed: 1000Mb/s
            Duplex: Full
            Port: Twisted Pair
            PHYAD: 1
            Transceiver: internal
            Auto-negotiation: on
            Supports Wake-on: g
            Wake-on: d
            Current message level: 0x000000ff (255)
            Link detected: yes
    
    I noticed that the following commit:
    
    commit 3600d918d870456ea8e7bb9d47f327de5c20f3d6
    Author: Michael Chan <mchan@broadcom.com>
    Date:   Thu Dec 7 00:21:48 2006 -0800
    
        [TG3]: Allow partial speed advertisement.
    
        Honor the advertisement bitmask from ethtool.  We used to always
        advertise the full capability when autoneg was set to on.
    
    changed things around so that ethtool speed settings were strictly
    followed.  Unfortunately ethtool doesn't seem to set ADVERTISED_Autoneg
    in the advertising field (and maybe it shouldn't have to).  I'd vote
    that it should be fixed there, but it should also be added here just in
    case someone using ethtool ioctls in their own application gets what
    they want.
    
    Adding that flag in tg3_set_settings seemed like the most logical place
    since the driver works fine on boot.  This is just an issue when
    re-enabling autonegotiation, so we should probably nip it there.
    
    Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 182f6ed5188ccb46d1c54c3334943a54110d0118
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun Oct 7 23:29:06 2007 -0700

    [TG3]: Update version to 3.82.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d30cdd28fba556143a4bb0d1a6097ebcc2891477
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Oct 7 23:28:35 2007 -0700

    [TG3]: Add 5784 and 5764 support.
    
    This patch adds the support for 5784 and 5764 devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 795d01c523dd9f22acc70fe86ed30e605e00024d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Oct 7 23:28:17 2007 -0700

    [TG3]: ASIC decoding and basic CPMU support.
    
    Newer products change the way the ASIC revision is obtained.  This patch
    implements how the driver will extract the revision number.
    
    This patch also adds preliminary CPMU support.  CPMU stands for Central
    Power Management Unit.  The CPMU's role is to put the chip into lower
    power states when the operating conditions allow it.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9974a356b204833b32173210ca25edfdc24dcdd5
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Oct 7 23:27:28 2007 -0700

    [TG3]: Walk PCI capability lists.
    
    Newer tg3 devices shuffle around the registers in PCI configuration
    space.  This patch changes the way the driver accesses the PCI
    capabilities registers.  Hardcoded register locations are replaced with
    offsets from pci_find_capability() return values.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b9f2c0440d806e01968c3ed4def930a43be248ad
Author: Jeff Garzik <jeff@garzik.org>
Date:   Wed Oct 3 18:07:32 2007 -0700

    [netdrvr] Stop using legacy hooks ->self_test_count, ->get_stats_count
    
    These have been superceded by the new ->get_sset_count() hook.
    
    Signed-off-by: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 88d3aafdae5c5e1d2dd9489a5c8a24e29d335f2e
Author: Jeff Garzik <jeff@garzik.org>
Date:   Sat Sep 15 14:41:06 2007 -0700

    [ETHTOOL] Provide default behaviors for a few ethtool sub-ioctls
    
    For the operations
    	get-tx-csum
    	get-sg
    	get-tso
    	get-ufo
    the default ethtool_op_xxx behavior is fine for all drivers, so we
    permit op==NULL to imply the default behavior.
    
    This provides a more uniform behavior across all drivers, eliminating
    ethtool(8) "ioctl not supported" errors on older drivers that had
    not been updated for the latest sub-ioctls.
    
    The ethtool_op_xxx() functions are left exported, in case anyone
    wishes to call them directly from a driver-private implementation --
    a not-uncommon case.  Should an ethtool_op_xxx() helper remain unused
    for a while, except by net/core/ethtool.c, we can un-export it at a
    later date.
    
    [ Resolved conflicts with set/get value ethtool patch... -DaveM ]
    
    Signed-off-by: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 10d024c1b2fd58af8362670d7d6e5ae52fc33353
Author: Ralf Baechle <ralf@linux-mips.org>
Date:   Mon Sep 17 13:11:17 2007 -0700

    [NET]: Nuke SET_MODULE_OWNER macro.
    
    It's been a useless no-op for long enough in 2.6 so I figured it's time to
    remove it.  The number of people that could object because they're
    maintaining unified 2.4 and 2.6 drivers is probably rather small.
    
    [ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]
    
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ab0049b4a2f66074dff6af851b35bba888f53972
Author: Andy Gospodarek <andy@greyhouse.net>
Date:   Thu Sep 6 20:42:14 2007 +0100

    [TG3]: remove sparse warnings
    
    Removed sparse warnings from tg3 driver.  The new logic seems fine (I
    don't immediately see where we are running over values for any of the
    variables that need to be saved).
    
    This patch compiles fine and I'm currently using a tg3 with the patched
    driver to post this patch as a basic proof of concept.
    
    Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bea3348eef27e6044b6161fd04c3152215f96411
Author: Stephen Hemminger <shemminger@linux-foundation.org>
Date:   Wed Oct 3 16:41:36 2007 -0700

    [NET]: Make NAPI polling independent of struct net_device objects.
    
    Several devices have multiple independant RX queues per net
    device, and some have a single interrupt doorbell for several
    queues.
    
    In either case, it's easier to support layouts like that if the
    structure representing the poll is independant from the net
    device itself.
    
    The signature of the ->poll() call back goes from:
    
    	int foo_poll(struct net_device *dev, int *budget)
    
    to
    
    	int foo_poll(struct napi_struct *napi, int budget)
    
    The caller is returned the number of RX packets processed (or
    the number of "NAPI credits" consumed if you want to get
    abstract).  The callee no longer messes around bumping
    dev->quota, *budget, etc. because that is all handled in the
    caller upon return.
    
    The napi_struct is to be embedded in the device driver private data
    structures.
    
    Furthermore, it is the driver's responsibility to disable all NAPI
    instances in it's ->stop() device close handler.  Since the
    napi_struct is privatized into the driver's private data structures,
    only the driver knows how to get at all of the napi_struct instances
    it may have per-device.
    
    With lots of help and suggestions from Rusty Russell, Roland Dreier,
    Michael Chan, Jeff Garzik, and Jamal Hadi Salim.
    
    Bug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra,
    Joseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan.
    
    [ Ported to current tree and all drivers converted.  Integrated
      Stephen's follow-on kerneldoc additions, and restored poll_list
      handling to the old style to fix mutual exclusion issues.  -DaveM ]
    
    Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2fbe43f6f631dd7ce19fb1499d6164a5bdb34568
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Sep 6 12:04:29 2007 +0100

    [TG3]: Workaround MSI bug on 5714/5780.
    
    A hardware bug was revealed after a recent PCI MSI patch was made to
    always disable legacy INTX when enabling MSI.  The 5714/5780 chips
    will not generate MSI when INTX is disabled, causing MSI failure
    messages to be reported, and another patch was made to workaround the
    problem by disabling MSI on ServerWorks HT1000 bridge chips commonly
    found with the 5714.
    
    We workaround this chip bug by enabling INTX after we enable MSI and
    after we resume from suspend.
    
    Update version to 3.81.
    
    This problem was discovered by David Miller.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Andy Gospodarek <andy@greyhouse.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3e0c95fd648c0d3175b9ff2232597d0b02eb7d46
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Aug 3 20:56:54 2007 -0700

    [TG3]: Fix suspend/resume problem.
    
    Joachim Deguara <joachim.deguara@amd.com> reported that tg3 devices
    would not resume properly if the device was shutdown before the system
    was suspended.  In such scenario where the netif_running state is 0,
    tg3_suspend() would not save the PCI state and so the memory enable bit
    and bus master enable bit would be lost.
    
    We fix this by always saving and restoring the PCI state in
    tg3_suspend() and tg3_resume() regardless of netif_running() state.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 313674afa8fdced2fe79f50f38e1c387b63d8790
Author: Matthew Wilcox <matthew@wil.cx>
Date:   Tue Jul 31 14:00:29 2007 -0700

    [NET]: ethtool_perm_addr only has one implementation
    
    All drivers implement ethtool get_perm_addr the same way -- by calling
    the generic function.  So we can inline the generic function into the
    caller and avoid going through the drivers.
    
    Signed-off-by: Matthew Wilcox <matthew@wil.cx>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ee6a99b539a50b4e9398938a0a6d37f8bf911550
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 18 21:49:10 2007 -0700

    [TG3]: Fix msi issue with kexec/kdump.
    
    Tina Yang <tina.yang@oracle.com> discovered an MSI related problem
    when doing kdump.  The problem is that the kexec kernel is booted
    without going through system reset, and as a result, MSI may already
    be enabled when tg3_init_one() is called.  tg3_init_one() calls
    pci_save_state() which will save the stale MSI state.  Later on in
    tg3_open(), we call pci_enable_msi() to reconfigure MSI on the chip
    before we reset the chip.  After chip reset, we call
    pci_restore_state() which will put the stale MSI address/data back
    onto the chip.
    
    This is no longer a problem in the latest kernel because
    pci_restore_state() has been changed to restore MSI state from
    internal data structures which will guarantee restoring the proper
    MSI state.
    
    But I think we should still fix it.  Our save and restore sequence
    can still cause very subtle problems down the road.  The fix is to
    have our own functions save and restore precisely what we need.  We
    also change it to save and restore state inside tg3_chip_reset() in a
    more straight forward way.
    
    Thanks to Tina for helping to test and debug the problem.
    
    [ Bump driver version and release date. -DaveM ]
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6460d948f3ebf7d5040328a60a0ab7221f69945b
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Jul 14 19:07:52 2007 -0700

    [NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices.
    
    Add ethtool utility function to set or clear IPV6_CSUM feature flag.
    Modify tg3.c and bnx2.c to use this function when doing ethtool -K
    to change tx checksum.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 21ba0f88ae56da82a3a15fe54d729208b64c4f4b
Merge: dc690d8... 36e2359...
Author: Linus Torvalds <torvalds@woody.linux-foundation.org>
Date:   Thu Jul 12 13:40:57 2007 -0700

    Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
    
    * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (34 commits)
      PCI: Only build PCI syscalls on architectures that want them
      PCI: limit pci_get_bus_and_slot to domain 0
      PCI: hotplug: acpiphp: avoid acpiphp "cannot get bridge info" PCI hotplug failure
      PCI: hotplug: acpiphp: remove hot plug parameter write to PCI host bridge
      PCI: hotplug: acpiphp: fix slot poweroff problem on systems without _PS3
      PCI: hotplug: pciehp: wait for 1 second after power off slot
      PCI: pci_set_power_state(): check for PM capabilities earlier
      PCI: cpci_hotplug: Convert to use the kthread API
      PCI: add pci_try_set_mwi
      PCI: pcie: remove SPIN_LOCK_UNLOCKED
      PCI: ROUND_UP macro cleanup in drivers/pci
      PCI: remove pci_dac_dma_... APIs
      PCI: pci-x-pci-express-read-control-interfaces cleanups
      PCI: Fix typo in include/linux/pci.h
      PCI: pci_ids, remove double or more empty lines
      PCI: pci_ids, add atheros and 3com_2 vendors
      PCI: pci_ids, reorder some entries
      PCI: i386: traps, change VENDOR to DEVICE
      PCI: ATM: lanai, change VENDOR to DEVICE
      PCI: Change all drivers to use pci_device->revision
      ...

commit 15028aad00ddf241581fbe74a02ec89cbb28d35d
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 11 19:49:22 2007 -0700

    [TG3]: Update version to 3.78.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 70b65a2d628d2e66bbf044bb764be64949f3580c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jul 11 19:48:50 2007 -0700

    [TG3]: Add missing NVRAM strapping.
    
    This patch adds a missing NVRAM strapping for 5755 devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9ef8ca99749784644602535691f8cf201ee2a225
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jul 11 19:48:29 2007 -0700

    [TG3]: Enable auto MDI.
    
    This patch adds automatic MDI crossover support when autonegotiation is
    turned off.  Automatic MDI crossover allows link to be established
    without the use of a crossover cable.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e8f3f6cad7e423253090887bc4afe7bc844162da
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jul 11 19:47:55 2007 -0700

    [TG3]: Fix the polarity bit.
    
    For most pre-5705 devices, multiple link interrupts were being generated
    for a single physical link change.  The source of the interrupts was
    determined to be unnecessary toggling of the MAC link polarity bit.
    
    This patch changes the way the link polarity bit gets configured.  Where
    possible, code that dynamically configures the bit in response to link
    changes has been replaced by code that configures the bit once during
    initialization time and then leaves the bit alone.
    
    For correctness, this patch also limits the use of the bit to those
    devices where it is defined, namely devices before the 5705.  This patch
    also corrects the link polarity configurations for 5700 devices when
    paired against a bcm5411 phy.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 469665459d26da8d0b46c70d070da1e192e48e46
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 11 19:47:19 2007 -0700

    [TG3]: Fix irq_sync race condition.
    
    Gagan Arneja <gaagaan@gmail.com> pointed out that tg3_reset_task()
    could potentially race with another thread calling tg3_full_lock()
    such as the ethtool_set_xxx() functions.  This may trigger the
    BUG_ON() in tg3_irq_quiesce() or cause the irq_sync flag to be out-
    of-sync.
    
    I think the easiest way to fix this is to get the tp->lock first
    before setting the irq_sync flag.  This is safe to do because the
    tp->lock is never grabbed by the irq handler.  This change will
    guarantee that the irq_sync flag updates will be serialized.  We also
    have to change one spot to call tg3_netif_start() (which clears the
    irq_sync flag) before releasing the tp->lock.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 44c10138fd4bbc4b6d6bff0873c24902f2a9da65
Author: Auke Kok <auke-jan.h.kok@intel.com>
Date:   Fri Jun 8 15:46:36 2007 -0700

    PCI: Change all drivers to use pci_device->revision
    
    Instead of all drivers reading pci config space to get the revision
    ID, they can now use the pci_device->revision member.
    
    This exposes some issues where drivers where reading a word or a dword
    for the revision number, and adding useless error-handling around the
    read. Some drivers even just read it for no purpose of all.
    
    In devices where the revision ID is being copied over and used in what
    appears to be the equivalent of hotpath, I have left the copy code
    and the cached copy as not to influence the driver's performance.
    
    Compile tested with make all{yes,mod}config on x86_64 and i386.
    
    Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
    Acked-by: Dave Jones <davej@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

commit d212f87b068c9d72065ef579d85b5ee6b8b59381
Author: Stephen Hemminger <shemminger@linux-foundation.org>
Date:   Wed Jun 27 00:47:37 2007 -0700

    [NET]: IPV6 checksum offloading in network devices
    
    The existing model for checksum offload does not correctly handle
    devices that can offload IPV4 and IPV6 only. The NETIF_F_HW_CSUM flag
    implies device can do any arbitrary protocol.
    
    This patch:
     * adds NETIF_F_IPV6_CSUM for those devices
     * fixes bnx2 and tg3 devices that need it
     * add NETIF_F_IPV6_CSUM to ipv6 output (incl GSO)
     * fixes assumptions about NETIF_F_ALL_CSUM in nat
     * adjusts bridge union of checksumming computation
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 007a880d627aee0e854e793099bb33d0c1130678
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu May 31 14:49:51 2007 -0700

    [TG3]: Fix link problem on Dell's onboard 5906.
    
    The bug is caused by code that always set
    (TG3_FLAG_USE_MI_INTERRUPT | TG3_FLAG_USE_LINKCHG_REG) on all Dell's
    onboard devices.  With these 2 flags set, the link status is polled
    by tg3_timer() and will only work when the PHY is set up to interrupt
    the MAC on link changes.  This breaks 5906 because the 5906 PHY does
    not support TG3_FLAG_USE_MI_INTERRUPT the same as other PHYs.
    
    For correctness, only Dell's onboard 5701 needs these 2 flags to be
    set.  This change will fix the 5906 problem and will change other
    Dell devices except 5700 and 5701 to use the more efficient
    interrupt-driven link changes.
    
    Update version to 3.77.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 25805dcf9d83098cf5492117ad2669cd14cc9b24
Author: Stephen Hemminger <shemminger@linux-foundation.org>
Date:   Fri Jun 1 09:44:01 2007 -0700

    network drivers: eliminate unneeded kill_vid code
    
    Many drivers had code that did kill_vid, but they weren't doing vlan
    filtering. With new API the stub is unneeded unless device sets
    NETIF_F_HW_VLAN_FILTER.
    
    Bad habit: I couldn't resist fixing a couple of nearby style things
    in acenic, and forcedeth.
    
    Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 28e53bddf814485699a4142bc056fd37d4e11dd4
Author: Oleg Nesterov <oleg@tv-sign.ru>
Date:   Wed May 9 02:34:22 2007 -0700

    unify flush_work/flush_work_keventd and rename it to cancel_work_sync
    
    flush_work(wq, work) doesn't need the first parameter, we can use cwq->wq
    (this was possible from the very beginnig, I missed this).  So we can unify
    flush_work_keventd and flush_work.
    
    Also, rename flush_work() to cancel_work_sync() and fix all callers.
    Perhaps this is not the best name, but "flush_work" is really bad.
    
    (akpm: this is why the earlier patches bypassed maintainers)
    
    Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
    Cc: Jeff Garzik <jeff@garzik.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Jens Axboe <jens.axboe@oracle.com>
    Cc: Tejun Heo <htejun@gmail.com>
    Cc: Auke Kok <auke-jan.h.kok@intel.com>,
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 2b3cb2e778811a1df99e37fd7c359837501ab103
Author: Andrew Morton <akpm@osdl.org>
Date:   Wed May 9 02:33:57 2007 -0700

    tg3: use flush_work_keventd()
    
    Convert tg3 over to flush_work_keventd().  Remove nasty now-unneeded deadlock
    avoidance logic.
    
    (akpm: bypassed maintainers, sorry.  There are other patches which depend on
    this)
    
    Cc: "Maciej W. Rozycki" <macro@linux-mips.org>
    Cc: David Howells <dhowells@redhat.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Michael Chan <mchan@broadcom.com>
    Cc: Jeff Garzik <jeff@garzik.org>
    Cc: Oleg Nesterov <oleg@tv-sign.ru>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 823036ed3291e30f32a905c94db821cd75524b59
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon May 7 00:26:30 2007 -0700

    [TG3]: Update version and reldate.
    
    Update version to 3.76.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c04cb34725fdcf5fdb4135d8fdfaf6f318f10e99
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon May 7 00:26:15 2007 -0700

    [TG3]: Eliminate spurious interrupts.
    
    Spurious interrupts are often encountered especially on systems
    using the 8259 PIC mode.  This is because the I/O write to deassert
    the interrupt is posted and won't get to the chip immediately.  As
    a result, the IRQ may remain asserted after the IRQ handler exits,
    causing spurious interrupts.
    
    Flush the interrupt mailbox in non-MSI handlers to de-assert the
    IRQ immediately.  This seems to be the most straight forward approach
    after discussion with Jeff Garzik and David Miller.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8ed5d97e5e0be0fb1aebad16f4c464613a0e472d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon May 7 00:25:49 2007 -0700

    [TG3]: Add ASPM workaround.
    
    This patch adds workaround to fix performance problems caused by slow
    PCIE L1->L0 transitions on ICH8 platforms.
    
    Changed all magic numbers to constants as suggested by Jeff Garzik.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7544b0972c1fc1a0e6c54baa1f44c81019743daa
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat May 5 13:08:32 2007 -0700

    [TG3]: Add TG3_FLAG_SUPPORT_MSI flag.
    
    And fix up the code to always allow MSI on 5714 A2.
    
    Call tg3_find_peer() earlier because we need that information before
    we can determine whether we can set TG3_FLAG_SUPPORT_MSI or not.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 98efd8a6be79550767f5a9be6f3db8e7e9b747da
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat May 5 12:47:25 2007 -0700

    [TG3]: Eliminate the TG3_FLAG_5701_REG_WRITE_BUG flag.
    
    This patch removes the use of the TG3_FLAG_5701_REG_WRITE_BUG flag.
    It's logic is only used to set a function pointer and thus the
    logic can be collapsed and the flag removed.
    
    [ Comment tidy by Christoph Hellwig. -DaveM ]
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>

commit 5cf64b8a7399999439f0d6748babb1ccb6bcad7c
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat May 5 12:11:21 2007 -0700

    [TG3]: Eliminate the TG3_FLAG_GOT_SERDES_FLOWCTL flag.
    
    This flag does not do anything useful.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 986e0aeb9ae09127b401c3baa66f15b7a31f354c
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat May 5 12:10:20 2007 -0700

    [TG3]: Remove reset during MAC address changes.
    
    The reset was added a while back so that ASF could re-init whatever
    MAC address it wanted to use after the MAC address was changed.
    Instead of resetting, we can just keep MAC address 1 unchanged during
    MAC address changes if MAC address 1 is different from MAC address 0.
    
    This fixes 2 problems:
    
    1. Bonding calls set_mac_address in contexts that cannot sleep.
    It no longer sleeps with the chip reset removed.
    
    2. When ASF shares the same MAC address as the NIC, it needs to
    always do that even when the MAC address is changed.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a85feb8cfc53c08b6f0d770f930ca9cc6885f414
Author: Gary Zambrano <zambrano@broadcom.com>
Date:   Sat May 5 11:52:19 2007 -0700

    [TG3]: WoL fixes.
    
    Change TG3_FLAG_SERDES_WOL_CAP to TG3_FLAG_WOL_CAP to make it easier
    to manage WoL.  This flag is now used consistently during ethtool WoL
    setup and power setting changes.
    
    Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit aaf84465fc994e9a840a8c0c6fa842b54cdb3426
Author: Gary Zambrano <zambrano@broadcom.com>
Date:   Sat May 5 11:51:45 2007 -0700

    [TG3]: Clear GPIO mask before storing.
    
    The GPIO settings may change during reset and so the stored values in
    tp->grc_local_ctrl should be cleared first.
    
    Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 989a9d239c5b9ae6053aed6e3819304930baf27d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat May 5 11:51:05 2007 -0700

    [TG3]: Improve NVRAM sizing.
    
    This patch changes the NVRAM sizing procedure so that the driver can
    take advantage of devices with 1:1 NVRAM strapping configurations.  This
    is useful in cases where the traditional NVRAM sizing method fails.  In
    the event that the flash size cannot be determined, the largest known
    NVRAM size is used.  The patch also removes support for 5755 NVRAM
    devices that are not supported by Broadcom and adds explicit sizing for
    this device.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c13e3713857d5ea572cd67f3d5749100b1963ad2
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat May 5 11:50:04 2007 -0700

    [TG3]: Fix TSO bugs.
    
    1. Remove the check for skb->len greater than MTU when doing TSO.
    When the destination has a smaller MSS than the source, a TSO packet
    may be smaller than the MTU and we still need to process it as a TSO
    packet.
    
    2. On 5705A3 devices with TSO enabled, the DMA engine can hang due to a
    hardware bug.  This patch avoids the hanging condition by reducing the
    DMA burst size.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0278ef8b484a71917bd4f03a763285cdaac10954
Merge: 15c5403... cd9ad58...
Author: Linus Torvalds <torvalds@woody.linux-foundation.org>
Date:   Fri Apr 27 09:29:04 2007 -0700

    Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
    
    * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: (67 commits)
      [SCSI] SUNESP: Complete driver rewrite to version 2.0
      [SPARC64]: Convert PCI over to generic struct iommu/strbuf.
      [SPARC]: device_node name constification fallout
      [SPARC64]: Convert SBUS over to generic iommu/strbuf structs.
      [SPARC64]: Add generic iommu and strbuf structs to iommu.h
      [SPARC64]: Consolidate {sbus,pci}_iommu_arena.
      [SPARC]: Make device_node name and type const
      [SPARC64]: constify some paramaters of OF routines
      [TIGON3]: of_get_property() returns const.
      [SPARC64]: Fix PCI rework to adhere to of_get_property() const return.
      [SPARC64]: Document and fix calculation of pages_avail.
      [SPARC64]: Make sure pbm->prom_node is setup easly enough in psycho.c
      [SPARC64]: Use bootmem_bootmap_pages() in choose_bootmap_pfn().
      [SPARC64]: Add proper header file extern for cmdline_memory_size.
      [SPARC64]: Kill sparc_ultra_dump_{i,d}tlb()
      [SPARC64]: Use DECLARE_BITMAP and BITS_TO_LONGS in mm/init.c
      [SPARC64]: Give move verbose show_mem() output just like i386.
      [SPARC64]: Mark show_mem() printk's with KERN_INFO.
      [SPARC64]: Kill kvaddr_to_phys() and friends.
      [SPARC64]: Privatize sun4u_get_pte() and fix name.
      ...

commit 374d4cac6283469f101282ca83ee008368bd8350
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Thu Mar 29 01:57:57 2007 -0700

    [TIGON3]: of_get_property() returns const.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 49b6e95ff6d05722bcf7a52b00454566ce0c44eb
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Thu Mar 29 01:38:42 2007 -0700

    [TG3]: Use pci_device_to_OF_node() on sparc.
    
    And use CONFIG_SPARC instead of CONFIG_SPARC64 as the
    test.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ccf0dec6fcadb4e1c877b9bafb031a6bdb7112b9
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Thu Mar 29 00:49:54 2007 -0700

    [SPARC/64] constify of_get_property return: drivers
    
    The only unfortunate bit here is that the name field of struct map_info
    is not const, so for now we put a cast on the assignment of it.
    
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d626f62b11e00c16e81e4308ab93d3f13551812a
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Tue Mar 27 18:55:52 2007 -0300

    [SK_BUFF]: Introduce skb_copy_from_linear_data{_offset}
    
    To clearly state the intent of copying from linear sk_buffs, _offset being a
    overly long variant but interesting for the sake of saving some bytes.
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

commit aa8223c7bb0b05183e1737881ed21827aa5b9e73
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Tue Apr 10 21:04:22 2007 -0700

    [SK_BUFF]: Introduce tcp_hdr(), remove skb->h.th
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ab6a5bb6b28a970104a34f0f6959b73cf61bdc72
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Sun Mar 18 17:43:48 2007 -0700

    [TCP]: Introduce tcp_hdrlen() and tcp_optlen()
    
    The ip_hdrlen() buddy, created to reduce the number of skb->h.th-> uses and to
    avoid the longer, open coded equivalent.
    
    Ditched a no-op in bnx2 in the process.
    
    I wonder if we should have a BUG_ON(skb->h.th->doff < 5) in tcp_optlen()...
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit eddc9ec53be2ecdbf4efe0efd4a83052594f0ac0
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Fri Apr 20 22:47:35 2007 -0700

    [SK_BUFF]: Introduce ip_hdr(), remove skb->nh.iph
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c9bdd4b5257406b0608385d19c40b5511decf4f6
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Mon Mar 12 20:09:15 2007 -0300

    [IP]: Introduce ip_hdrlen()
    
    For the common sequence "skb->nh.iph->ihl * 4", removing a good number of open
    coded skb->nh.iph uses, now to go after the rest...
    
    Just out of curiosity, here are the idioms found to get the same result:
    
    skb->nh.iph->ihl << 2
    skb->nh.iph->ihl<<2
    skb->nh.iph->ihl * 4
    skb->nh.iph->ihl*4
    (skb->nh.iph)->ihl * sizeof(u32)
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b8fa2f3a82069304acac1f9e957d491585f4f49a
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Apr 6 17:35:37 2007 -0700

    [TG3]: Fix crash during tg3_init_one().
    
    The driver will crash when the chip has been initialized by EFI before
    tg3_init_one().  In this case, the driver will call tg3_chip_reset()
    before allocating consistent memory.
    
    The bug is fixed by checking for tp->hw_status before accessing it
    during tg3_chip_reset().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 20bd7dd4cabfd0d6b6b70b99e88df901480a9841
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Mar 24 20:58:51 2007 -0700

    [TG3]: Update version and reldate.
    
    Update version to 3.75.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d18edcb212d7dc864a59e6aa9b6b9826299e0210
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Mar 24 20:57:11 2007 -0700

    [TG3]: Exit irq handler during chip reset.
    
    On most tg3 chips, the memory enable bit in the PCI command register
    gets cleared during chip reset and must be restored before accessing
    PCI registers using memory cycles.  The chip does not generate
    interrupt during chip reset, but the irq handler can still be called
    because of irq sharing or irqpoll.  Reading a register in the irq
    handler can cause a master abort in this scenario and may result in a
    crash on some architectures.
    
    Use the TG3_FLAG_CHIP_RESETTING flag to tell the irq handler to exit
    without touching any registers.  The checking of the flag is in the
    "slow" path of the irq handler and will not affect normal performance.
    The msi handler is not shared and therefore does not require checking
    the flag.
    
    Thanks to Bernhard Walle <bwalle@suse.de> for reporting the problem.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1c46ae05d96f77f349ae60c799acb6ac6ddf07a8
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Mar 24 20:54:37 2007 -0700

    [TG3]: Eliminate the unused TG3_FLAG_SPLIT_MODE flag.
    
    This flag to support multiple PCIX split completions was never used
    because of hardware bugs.  This will make room for a new flag.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5c15bdec5c38f4ccf73ef2585fc80a6164de9554
Author: Dan Aloni <da-x@monatomic.org>
Date:   Fri Mar 2 20:44:51 2007 -0800

    [VLAN]: Avoid a 4-order allocation.
    
    This patch splits the vlan_group struct into a multi-allocated struct. On
    x86_64, the size of the original struct is a little more than 32KB, causing
    a 4-order allocation, which is prune to problems caused by buddy-system
    external fragmentation conditions.
    
    I couldn't just use vmalloc() because vfree() cannot be called in the
    softirq context of the RCU callback.
    
    Signed-off-by: Dan Aloni <da-x@monatomic.org>
    Acked-by: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7f62ad5d37f4e43c841e92c6f159c93dcf2d2cdd
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 20 23:25:40 2007 -0800

    [TG3]: TSO workaround fixes.
    
    1.  Add race condition check after netif_stop_queue().  tg3_tx() runs
        without netif_tx_lock and can race with tg3_start_xmit_dma_bug() ->
        tg3_tso_bug().
    
    2.  Firmware TSO in 5703/5704/5705 also have the same TSO limitation,
        i.e. they cannot handle TSO headers bigger than 80 bytes.  Rename
        TG3_FL2_HW_TSO_1_BUG to TG3_FL2_TSO_BUG and set this flag on
        these chips as well.
    
    3.  Update version to 3.74.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 65610fbab35b0570df4a9d0e77e111f85606b312
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:18:46 2007 -0800

    [TG3]: Update copyright, version, and reldate.
    
    Update version to 3.73.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b0408751128edc126eb37798d51891d8d0a41dc6
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:18:30 2007 -0800

    [TG3]: Add some tx timeout debug messages.
    
    Print the most useful information during tx timeout to help debug.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 569a5df8597deeaa39867be73c7305fd82522f57
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:18:15 2007 -0800

    [TG3]: Use constant for PHY register 0x1e.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5129724aa5de3a71fc70e71ca49d542ca1a5aa1e
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:17:57 2007 -0800

    [TG3]: Power down 5704 serdes transceiver when shutting down.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d7b0a8573c9ac8923bf6f205f4ce60dd2ac811d5
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:17:38 2007 -0800

    [TG3]: 5906 doesn't need to switch to slower clock.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d4011adaf8b5ea555357a40388ee9aa7ed2daf9f
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:17:25 2007 -0800

    [TG3]: 5722/5756 don't need PHY jitter workaround.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 49afdeb65bb917e22cf9116bc31380befe9db890
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:17:03 2007 -0800

    [TG3]: Use lower DMA watermark for 5703.
    
    Set DMA read watermark to 4 on 5703 in PCIX mode.  This is needed to
    prevent some tx timeouts.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 436f137975507b0baab0859a253c3c9332c22f62
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Feb 13 12:16:45 2007 -0800

    [TG3]: Save MSI state before suspend.
    
    This fixes the following problem:
    
    http://bugzilla.kernel.org/show_bug.cgi?id=7969
    
    The MSI state needs to be saved during suspend.  PCI state saved
    during tg3_init_one() does not contain valid MSI state because
    MSI hasn't been enabled.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6b31a515e3401685cdab2eeb6692f1a0f53f72ca
Author: Eric Dumazet <dada1@cosmosbay.com>
Date:   Tue Feb 6 13:29:21 2007 -0800

    [TG3]: Avoid an expensive divide.
    
    During an oprofile session of linux-2.6.20 on a dual opteron system, I noticed
    an expensive divide was done in tg3_poll().
    
    I am using gcc-4.1.1, so the following comment from drivers/net/tg3.c seems
    over-optimistic :
    
    /* Do not place this n-ring entries value into the tp struct itself,
      * we really want to expose these constants to GCC so that modulo et
      * al.  operations are done with shifts and masks instead of with
      * hw multiply/modulo instructions.  Another solution would be to
      * replace things like '% foo' with '& (foo - 1)'.
      */
    #define TG3_RX_RCB_RING_SIZE(tp)        \
             ((tp->tg3_flags2 & TG3_FLG2_5705_PLUS) ?  512 : 1024)
    
    Assembly code before patch :
    (oprofile results included)
       6434  0.0088 :ffffffff803684b9:       mov    0x6f0(%r15),%eax
        587 8.0e-04 :ffffffff803684c0:       and    $0x40000,%eax
       2170  0.0030 :ffffffff803684c5:       cmp    $0x1,%eax
                    :ffffffff803684c8:       lea    0x1(%r13),%eax
                    :ffffffff803684cc:       sbb    %ecx,%ecx
       2051  0.0028 :ffffffff803684ce:       xor    %edx,%edx
                    :ffffffff803684d0:       and    $0x200,%ecx
         20 2.7e-05 :ffffffff803684d6:       add    $0x200,%ecx
       1986  0.0027 :ffffffff803684dc:       div    %ecx
    103427  0.1410 :ffffffff803684de:       cmp    %edx,0xffffffffffffff7c(%rbp)
    
    Assembly code after the suggested patch :
    
    ffffffff803684b9:           mov    0x6f0(%r15),%eax
    ffffffff803684c0:           and    $0x40000,%eax
    ffffffff803684c5:           cmp    $0x1,%eax
    ffffffff803684c8:           sbb    %eax,%eax
    ffffffff803684ca:           inc    %r13d
    ffffffff803684cd:           and    $0x200,%eax
    ffffffff803684d2:           add    $0x1ff,%eax
    ffffffff803684d7:           and    %eax,%r13d
    ffffffff803684da:           cmp    %r13d,0xffffffffffffff7c(%rbp)
    
    Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1d39ed565cfcc7c4fe586de621aef495c4f94ffb
Author: Arjan van de Ven <arjan@linux.intel.com>
Date:   Tue Dec 12 14:06:23 2006 +0100

    remove NETIF_F_TSO ifdefery
    
    Remove the NETIF_F_TSO #ifdef-ery in drivers/net; this was
    for old-old-2.4 compat (even current 2.4 has NETIF_F_TSO)
    but it's time to get rid of it by now.
    
    Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit c1d2a1965a00693bddaddf75d57488a0d8e891af
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jan 8 19:57:20 2007 -0800

    [TG3]: Add PHY workaround for 5755M.
    
    Some PHY trim values need to be fine-tuned on 5755M to be
    IEEE-compliant.
    
    Update version to 3.72.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 749494bad9ca170e404b8dcebe8422df0d79b3ac
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun Dec 17 17:08:30 2006 -0800

    [TG3]: Update version and reldate.
    
    Update version to 3.71.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 60189ddff03ffce1f0442a7591b2abafdf47e6a3
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun Dec 17 17:08:07 2006 -0800

    [TG3]: Power down/up 5906 PHY correctly.
    
    The 5906 PHY requires a special register bit to power down and up the
    PHY.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c49a1561ee4b663d2819b5bea3e4684eae217b19
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun Dec 17 17:07:29 2006 -0800

    [TG3]: Fix race condition when calling register_netdev().
    
    Hot-plug scripts can call tg3_open() as soon as register_netdev() is
    called in tg3_init_one().  We need to call pci_set_drvdata() before
    register_netdev(), and netif_carrier_off() needs to be moved to
    tg3_open() to avoid race conditions.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 24fcad6b3ca3bdbbb4614de3edc1ff16f594ba9a
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun Dec 17 17:06:46 2006 -0800

    [TG3]: Assign tp->link_config.orig_* values.
    
    tp->link_config.orig_* values must be assigned during
    tg3_set_settings() because these values will be used to setup the
    link speed during tg3_open().  Without these assignments, the link
    speed settings will be all messed by if tg3_set_settings() is called
    when the device is down.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bd2b334378530f6dbe03f6325b8c885524e298a3
Author: Yan Burman <burman.yan@gmail.com>
Date:   Thu Dec 14 15:25:00 2006 -0800

    [TG3]: replace kmalloc+memset with kzalloc
    
    Replace kmalloc+memset with kzalloc
    
    Signed-off-by: Yan Burman <burman.yan@gmail.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cbb45d21fb2fcbcafc19ea859350f564252a0878
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 7 00:24:09 2006 -0800

    [TG3]: Identify Serdes devices more clearly.
    
    Change the message to more clearly identify Serdes devices.
    
    Update version to 3.70.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9d57f01c1331cb7bfd0a9d4f7723da5b9329394f
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 7 00:23:25 2006 -0800

    [TG3]: Use msleep.
    
    Change some udelay() in some eeprom functions to msleep().  Eeprom
    related functions are always called from sleepable context.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9f88f29fc502192824aba092e90af1297a87eb82
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 7 00:22:54 2006 -0800

    [TG3]: Use netif_msg_*.
    
    Use netif_msg_* to turn on or off some messages.
    
    Based on Stephen Hemminger's initial patch.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3600d918d870456ea8e7bb9d47f327de5c20f3d6
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 7 00:21:48 2006 -0800

    [TG3]: Allow partial speed advertisement.
    
    Honor the advertisement bitmask from ethtool.  We used to always
    advertise the full capability when autoneg was set to on.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9d26e213423923c9e033ccd373705118131827c9
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 7 00:21:14 2006 -0800

    [TG3]: Add TG3_FLG2_IS_NIC flag.
    
    Add Tg3_FLG2_IS_NIC flag to unambiguously determine whether the
    device is NIC or onboard.  Previously, the EEPROM_WRITE_PROT flag was
    overloaded to also mean onboard.  With the separation, we can
    support some devices that are onboard but do not use eeprom write
    protect.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 676917d488212303ce4a7d033815ce8799201010
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 7 00:20:22 2006 -0800

    [TG3]: Add 5787F device ID.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5d64ad34f468278ce66f9eb4d876dd221490e94c
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 7 00:19:40 2006 -0800

    [TG3]: Fix Phy loopback.
    
    Phy loopback on most 10/100 devices need to be run in 1Gbps mode in
    GMII mode.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c4028958b6ecad064b1a6303a6a5906d4fe48d73
Author: David Howells <dhowells@redhat.com>
Date:   Wed Nov 22 14:57:56 2006 +0000

    WorkStruct: make allyesconfig
    
    Fix up for make allyesconfig.
    
    Signed-Off-By: David Howells <dhowells@redhat.com>

commit 12862086f24d7382b24379bbcbe0dadf12ca5945
Author: Ira W. Snyder <kernel@irasnyder.com>
Date:   Tue Nov 21 17:44:31 2006 -0800

    [TG3]: Add missing unlock in tg3_open() error path.
    
    Sparse noticed a locking imbalance in tg3_open(). This patch adds an
    unlock to one of the error paths, so that tg3_open() always exits
    without the lock held.
    
    Signed-off-by: Ira W. Snyder <kernel@irasnyder.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c7835a77c86422d276b0d1a4c70924d933014c13
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Nov 15 21:14:42 2006 -0800

    [TG3]: Disable TSO on 5906 if CLKREQ is enabled.
    
    Due to hardware errata, TSO must be disabled if the PCI Express clock
    request is enabled on 5906.  The chip may hang when transmitting TSO
    frames if CLKREQ is enabled.
    
    Update version to 3.69.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0ccead1869444891ae6b41f2c5fc8498521c908e
Author: Gary Zambrano <zambrano@broadcom.com>
Date:   Tue Nov 14 16:34:00 2006 -0800

    [TG3]: Increase 5906 firmware poll time.
    
    Newer 5906 bootcode needs about 7ms to finish resetting so the poll
    firmware loop was changed to maximum 20ms.
    
    Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit af2c6a4aaa2253f1e29df8fb59a3d92174d30a33
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Nov 7 14:57:51 2006 -0800

    [TG3]: Fix array overrun in tg3_read_partno().
    
    Use proper upper limits for the loops and check for all error
    conditions.
    
    The problem was noticed by Adrian Bunk.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 36da4d869f23bc7d1a70a3185218cb626537845c
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Nov 3 01:01:03 2006 -0800

    [TG3]: Fix 2nd ifup failure on 5752M.
    
    This fixes a bug reported in:
    
    http://bugzilla.kernel.org/show_bug.cgi?id=7438
    
    tg3_close() turns off the PHY if WoL and ASF are both disabled.  On
    the next tg3_open(), some devices such as the 5752M will not be
    brought up correctly without a PHY reset early in the reset sequence.
    The PHY clock is needed for some internal MAC blocks to function
    correctly.
    
    This problem is fixed by always resetting the PHY early in
    tg3_reset_hw() when it is called from tg3_open() or tg3_resume().
    tg3_setup_phy() can then be called later in the sequence without the
    reset_phy parameter set to 1, since the PHY reset is already done.
    
    Update version to 3.68.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6ba7511b7c8b71d5148f7516584d0b677acc384a
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Wed Oct 18 20:56:06 2006 -0700

    [TG3]: Bump driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bc3a9254a7925b6278f6d882746fe6a0bdf6f610
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 18 20:55:18 2006 -0700

    [TG3]: Add lower bound checks for tx ring size.
    
    The minimum tx ring size must be greater than MAX_SKB_FRAGS or 3
    times that on some chips with TSO bugs.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 42952231c6a8623117ee3cc89c82d382dc69ca30
Author: Ranjit Manomohan <ranjitm@google.com>
Date:   Wed Oct 18 20:54:26 2006 -0700

    [TG3]: Fix set ring params tx ring size implementation
    
    Fixes the implementation of the ethtool set ring parameters for the
    tg3 transmit ring.  The size of tx_pending is taken into account
    before doing a netif_wake_queue.  This prevents the interface from
    locking up when smaller transmit ring sizes are used.
    
    Signed-off-by: Ranjit Manomohan <ranjitm@google.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7d12e780e003f93433d49ce78cfedf4b4c52adc5
Author: David Howells <dhowells@redhat.com>
Date:   Thu Oct 5 14:55:46 2006 +0100

    IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
    
    Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
    of passing regs around manually through all ~1800 interrupt handlers in the
    Linux kernel.
    
    The regs pointer is used in few places, but it potentially costs both stack
    space and code to pass it around.  On the FRV arch, removing the regs parameter
    from all the genirq function results in a 20% speed up of the IRQ exit path
    (ie: from leaving timer_interrupt() to leaving do_IRQ()).
    
    Where appropriate, an arch may override the generic storage facility and do
    something different with the variable.  On FRV, for instance, the address is
    maintained in GR28 at all times inside the kernel as part of general exception
    handling.
    
    Having looked over the code, it appears that the parameter may be handed down
    through up to twenty or so layers of functions.  Consider a USB character
    device attached to a USB hub, attached to a USB controller that posts its
    interrupts through a cascaded auxiliary interrupt controller.  A character
    device driver may want to pass regs to the sysrq handler through the input
    layer which adds another few layers of parameter passing.
    
    I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
    main part of the code on FRV and i386, though I can't test most of the drivers.
    I've also done partial conversion for powerpc and MIPS - these at least compile
    with minimal configurations.
    
    This will affect all archs.  Mostly the changes should be relatively easy.
    Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
    
    	struct pt_regs *old_regs = set_irq_regs(regs);
    
    And put the old one back at the end:
    
    	set_irq_regs(old_regs);
    
    Don't pass regs through to generic_handle_irq() or __do_IRQ().
    
    In timer_interrupt(), this sort of change will be necessary:
    
    	-	update_process_times(user_mode(regs));
    	-	profile_tick(CPU_PROFILING, regs);
    	+	update_process_times(user_mode(get_irq_regs()));
    	+	profile_tick(CPU_PROFILING);
    
    I'd like to move update_process_times()'s use of get_irq_regs() into itself,
    except that i386, alone of the archs, uses something other than user_mode().
    
    Some notes on the interrupt handling in the drivers:
    
     (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
         the input_dev struct.
    
     (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
         something different depending on whether it's been supplied with a regs
         pointer or not.
    
     (*) Various IRQ handler function pointers have been moved to type
         irq_handler_t.
    
    Signed-Off-By: David Howells <dhowells@redhat.com>
    (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

commit 1533d382155ee888d9621391c108ffb7a68bb25d
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:10:35 2006 -0700

    [TG3]: Update version and reldate.
    
    Update version to 3.66.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b16250e3d1c55820f08f0296624a423122ea9805
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:10:14 2006 -0700

    [TG3]: Add 5709 self-test support.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 715116a12610b67c1d301a9b845ce95f7247dad3
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:09:25 2006 -0700

    [TG3]: Add 5709 PHY support.
    
    Add support for the 5709 10/100 PHY.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b5d3772ccbe0bc5ac8ffbb5356b74ca698aee28c
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:06:21 2006 -0700

    [TG3]: Add basic 5906 support.
    
    Add support for the new 5709 device.  This is a new 10/100 Mbps chip.
    The mailbox access and firmware interface are quite different from
    all other tg3 chips.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7a6f4369449a471a6e5718a87c53ac75a46960ba
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:03:31 2006 -0700

    [TG3]: Add tg3_poll_fw().
    
    Put the firmware polling logic into a separate function.  This makes
    the code cleaner.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 126a336822a6594662f5898f1ddf33e6d048fcc7
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:03:07 2006 -0700

    [TG3]: Add 5722 and 5756 support.
    
    Add IDs to support 5722 and 5756.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3f7045c1f28bedd44389b9392b54c6fdb83ee5c6
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:02:29 2006 -0700

    [TG3]: PHY fixes.
    
    Some PHY related fixes:
    
    1. Fix Serdes WoL.
    2. Fix loopback test on 10/100 only devices.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 130b8e4d0e4edadcecee9fdff2c32f33d77c4fe9
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 16:00:40 2006 -0700

    [TG3]: Improve ASF heartbeat.
    
    Change to a different ASF heartbeat message code to improve
    reliability.
    
    There were some reports of unintended resets on real time kernels
    where the timer may be slow and cause the heartbeat to be late.
    Netpoll will also have the same problem because the timer irq will
    be unavailable.
    
    Using the new heartbeat code, the ASF firmware will also check the
    ring condition before resetting the chip when the heartbeat is
    expiring.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3d3ebe741b2c06fe3df67739d09f6ef0e25ee41a
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Sep 27 15:59:15 2006 -0700

    [TG3]: Improve 5704S autoneg.
    
    Improve 5704S autoneg logic by using a serdes_counter field to keep
    track of the transient states.  This eliminates a 200 msec busy
    loop in the code.  Autoneg will take its course without the driver
    busy waiting for it to finish.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a319a2773a13bab56a0d0b3744ba8703324313b5
Merge: e18fa70... 1837987...
Author: Linus Torvalds <torvalds@g5.osdl.org>
Date:   Sun Sep 24 10:15:13 2006 -0700

    Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
    
    * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (217 commits)
      net/ieee80211: fix more crypto-related build breakage
      [PATCH] Spidernet: add ethtool -S (show statistics)
      [NET] GT96100: Delete bitrotting ethernet driver
      [PATCH] mv643xx_eth: restrict to 32-bit PPC_MULTIPLATFORM
      [PATCH] Cirrus Logic ep93xx ethernet driver
      r8169: the MMIO region of the 8167 stands behin BAR#1
      e1000, ixgb: Remove pointless wrappers
      [PATCH] Remove powerpc specific parts of 3c509 driver
      [PATCH] s2io: Switch to pci_get_device
      [PATCH] gt96100: move to pci_get_device API
      [PATCH] ehea: bugfix for register access functions
      [PATCH] e1000 disable device on PCI error
      drivers/net/phy/fixed: #if 0 some incomplete code
      drivers/net: const-ify ethtool_ops declarations
      [PATCH] ethtool: allow const ethtool_ops
      [PATCH] sky2: big endian
      [PATCH] sky2: fiber support
      [PATCH] sky2: tx pause bug fix
      drivers/net: Trim trailing whitespace
      [PATCH] ehea: IBM eHEA Ethernet Device Driver
      ...
    
    Manually resolved conflicts in drivers/net/ixgb/ixgb_main.c and
    drivers/net/sky2.c related to CHECKSUM_HW/CHECKSUM_PARTIAL changes by
    commit 84fa7933a33f806bbbaae6775e87459b1ec584c0 that just happened to be
    next to unrelated changes in this update.

commit 131852176c1f5b4350b4af811d1836db387d0c61
Author: Henrik Kretzschmar <henne@nachtwindheim.de>
Date:   Tue Aug 22 00:28:33 2006 -0700

    [TG3]: Convert the pci_device_id table to PCI_DEVICE()
    
    Convert the pci_device_ids to PCI_DEVICE() macro.  Saves 1.5k in the
    sourcefile.
    
    Signed-off-by: Henrik Kretzschmar <henne@nachtwindheim.de>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 50da859d4e566fba90ebda87b843970d902c903e
Author: Andreas Mohr <andi@lisas.de>
Date:   Mon Aug 14 23:54:30 2006 -0700

    [TG3]: Constify firmware structs
    
    Constify largish areas of firmware data in Tigon3 ethernet driver.
    
    non-const:
    
    lsmod:
    tg3                   101404  0
    
    objdump -x:
    .rodata 000003e8
    .data 00004a0c
    
    ls -l:
    -rw-r--r-- 1 root root 114404 2006-08-19 21:36 drivers/net/tg3.ko
    
    const:
    
    lsmod:
    tg3                   101404  0
    
    objdump -x:
    .rodata 000042c8
    .data 00000b4c
    
    ls -l:
    -rw-r--r-- 1 root root 114532 2006-08-19 21:06 drivers/net/tg3.ko
    
    Signed-off-by: Andreas Mohr <andi@lisas.de>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 84fa7933a33f806bbbaae6775e87459b1ec584c0
Author: Patrick McHardy <kaber@trash.net>
Date:   Tue Aug 29 16:44:56 2006 -0700

    [NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE
    
    Replace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose
    checksum still needs to be completed) and CHECKSUM_COMPLETE (for
    incoming packets, device supplied full checksum).
    
    Patch originally from Herbert Xu, updated by myself for 2.6.18-rc3.
    
    Signed-off-by: Patrick McHardy <kaber@trash.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7282d491ecaee9883233a0e27283c4c79486279a
Author: Jeff Garzik <jeff@garzik.org>
Date:   Wed Sep 13 14:30:00 2006 -0400

    drivers/net: const-ify ethtool_ops declarations
    
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 6aa20a2235535605db6d6d2bd850298b2fe7f31e
Author: Jeff Garzik <jeff@garzik.org>
Date:   Wed Sep 13 13:24:59 2006 -0400

    drivers/net: Trim trailing whitespace
    
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 299176206b266f204be859adf9e66efd06628ab2
Author: Jeff Garzik <jeff@garzik.org>
Date:   Sat Aug 19 17:48:59 2006 -0400

    drivers/net: Remove deprecated use of pci_module_init()
    
    From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
    
    Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>

commit 1b2a720506ccf7c30baaeda5d990c29b31e21726
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Aug 7 21:46:02 2006 -0700

    [TG3]: Fix tx race condition
    
    Fix a subtle race condition between tg3_start_xmit() and tg3_tx()
    discovered by Herbert Xu <herbert@gondor.apana.org.au>:
    
    CPU0					CPU1
    tg3_start_xmit()
    	if (tx_ring_full) {
    		tx_lock
    					tg3_tx()
    						if (!netif_queue_stopped)
    		netif_stop_queue()
    		if (!tx_ring_full)
    						update_tx_ring
    			netif_wake_queue()
    		tx_unlock
    	}
    
    Even though tx_ring is updated before the if statement in tg3_tx() in
    program order, it can be re-ordered by the CPU as shown above.  This
    scenario can cause the tx queue to be stopped forever if tg3_tx() has
    just freed up the entire tx_ring.  The possibility of this happening
    should be very rare though.
    
    The following changes are made:
    
    1. Add memory barrier to fix the above race condition.
    
    2. Eliminate the private tx_lock altogether and rely solely on
    netif_tx_lock.  This eliminates one spinlock in tg3_start_xmit()
    when the ring is full.
    
    3. Because of 2, use netif_tx_lock in tg3_tx() before calling
    netif_wake_queue().
    
    4. Change TX_BUFFS_AVAIL to an inline function with a memory barrier.
    Herbert and David suggested using the memory barrier instead of
    volatile.
    
    5. Check for the full wake queue condition before getting
    netif_tx_lock in tg3_tx().  This reduces the number of unnecessary
    spinlocks when the tx ring is full in a steady-state condition.
    
    6. Update version to 3.65.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d14cc9a342a8004b0ecfe66f1f12120962b61d8c
Author: Christoph Hellwig <hch@lst.de>
Date:   Mon Aug 7 16:11:48 2006 -0700

    [TG3]: skb->dev assignment is done by netdev_alloc_skb
    
    All caller of netdev_alloc_skb need to assign skb->dev shortly
    afterwards.  Move it into common code.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a20e9c6291f27cac4a9ab450d124794c012f87d4
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Mon Jul 31 22:38:16 2006 -0700

    [TG3]: Convert to netdev_alloc_skb
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b6e77a5346d8a739227ed73c2269966a4fd652b4
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jul 25 16:39:12 2006 -0700

    [TG3]: Update version and reldate
    
    Update version to 3.63.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 32d8c5724b7b05c7d8f7386c49432104cc222e32
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jul 25 16:38:29 2006 -0700

    [TG3]: Handle tg3_init_rings() failures
    
    Handle dev_alloc_skb() failures when initializing the RX rings.
    Without proper handling, the driver will crash when using a partial
    ring.
    
    Thanks to Stephane Doyon <sdoyon@max-t.com> for reporting the bug and
    providing the initial patch.
    
    Howie Xu <howie@vmware.com> also reported the same issue.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b9ec6c1b917e2e43a058a78198d54aeca3d71c6f
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jul 25 16:37:27 2006 -0700

    [TG3]: Add tg3_restart_hw()
    
    Add tg3_restart_hw() to handle failures when re-initializing the
    device.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c165b0040502ef0d2b5751eef3cd96ea8210ae4c
Author: John W. Linville <linville@tuxdriver.com>
Date:   Sat Jul 8 13:28:53 2006 -0700

    [TG3]: add amd8131 to "write reorder" chipsets
    
    Add the AMD 8131 bridge to the list of chipsets that reorder writes.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b0026624f1aa3e38a887cb483de61f104d600b97
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 3 19:42:14 2006 -0700

    [TG3]: Add ipv6 TSO feature
    
    Enable ipv6 TSO feature on chips that support it.
    
    Update version to 3.61.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1fb9df5d3069064c037c81c0ab8bf783ffa5e373
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Sat Jul 1 19:29:39 2006 -0700

    [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

commit e37a72de84d27ee8bc0e7dbb5c2f1774ed306dbb
Merge: 93fdf10... f83ef8c...
Author: Linus Torvalds <torvalds@g5.osdl.org>
Date:   Fri Jun 30 15:40:17 2006 -0700

    Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
    
    * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
      [IPV6]: Added GSO support for TCPv6
      [NET]: Generalise TSO-specific bits from skb_setup_caps
      [IPV6]: Added GSO support for TCPv6
      [IPV6]: Remove redundant length check on input
      [NETFILTER]: SCTP conntrack: fix crash triggered by packet without chunks
      [TG3]: Update version and reldate
      [TG3]: Add TSO workaround using GSO
      [TG3]: Turn on hw fix for ASF problems
      [TG3]: Add rx BD workaround
      [TG3]: Add tg3_netif_stop() in vlan functions
      [TCP]: Reset gso_segs if packet is dodgy

commit 2c6059bca8cf5e7f722d909f2e5edda0491ac604
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 29 20:16:28 2006 -0700

    [TG3]: Update version and reldate
    
    Update version to 3.61.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 52c0fd834ea0e7c6ef8616ce0a1f85bac4233ed7
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 29 20:15:54 2006 -0700

    [TG3]: Add TSO workaround using GSO
    
    Use GSO to workaround a rare TSO bug on some chips.  This hardware
    bug may be triggered when the TSO header size is greater than 80
    bytes.  When this condition is detected in a TSO packet, the driver
    will use GSO to segment the packet to workaround the hardware bug.
    
    Thanks to Juergen Kreileder <jk@blackdown.de> for reporting the
    problem and collecting traces to help debug the problem.
    
    And thanks to Herbert Xu <herbert@gondor.apana.org.au> for providing
    the GSO mechanism that happens to be the perfect workaround for this
    problem.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1661394e78b3b2cc868cd0e89c1066974302aaca
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 29 20:15:13 2006 -0700

    [TG3]: Turn on hw fix for ASF problems
    
    Clear a bit to enable a hardware fix for some ASF related problem.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f92905deb9bc89834dac247ca1a0d905ebcf629b
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 29 20:14:29 2006 -0700

    [TG3]: Add rx BD workaround
    
    Add workaround to limit the burst size of rx BDs being DMA'ed to the
    chip.  This works around hardware errata on a number of 5750, 5752,
    and 5755 chips.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 29315e8770c20cbfe607ad962d87867115a44555
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 29 20:12:30 2006 -0700

    [TG3]: Add tg3_netif_stop() in vlan functions
    
    Add tg3_netif_stop() when changing the vlgrp (vlan group) pointer. It
    is necessary to quiesce the device before changing that pointer.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6ab3d5624e172c553004ecc862bfeac16d9d68b7
Author: Jörn Engel <joern@wohnheim.fh-wedel.de>
Date:   Fri Jun 30 19:25:36 2006 +0200

    Remove obsolete #include <linux/config.h>
    
    Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
    Signed-off-by: Adrian Bunk <bunk@stusta.de>

commit de8d28b16f5614aeb12bb69c8f9a38578b8d3ada
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Thu Jun 22 16:18:54 2006 -0700

    [SPARC64]: Convert sparc64 PCI layer to in-kernel device tree.
    
    One thing this change pointed out was that we really should
    pull the "get 'local-mac-address' property" logic into a helper
    function all the network drivers can call.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7967168cefdbc63bf332d6b1548eca7cd65ebbcc
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Thu Jun 22 02:40:14 2006 -0700

    [NET]: Merge TSO/UFO fields in sk_buff
    
    Having separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not
    going to scale if we add any more segmentation methods (e.g., DCCP).  So
    let's merge them.
    
    They were used to tell the protocol of a packet.  This function has been
    subsumed by the new gso_type field.  This is essentially a set of netdev
    feature bits (shifted by 16 bits) that are required to process a specific
    skb.  As such it's easy to tell whether a given device can process a GSO
    skb: you just have to and the gso_type field and the netdev's features
    field.
    
    I've made gso_type a conjunction.  The idea is that you have a base type
    (e.g., SKB_GSO_TCPV4) that can be modified further to support new features.
    For example, if we add a hardware TSO type that supports ECN, they would
    declare NETIF_F_TSO | NETIF_F_TSO_ECN.  All TSO packets with CWR set would
    have a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO
    packets would be SKB_GSO_TCPV4.  This means that only the CWR packets need
    to be emulated in software.
    
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 00b7050426da8e7e58c889c5c80a19920d2d41b3
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Jun 17 21:58:45 2006 -0700

    [TG3]: Convert to non-LLTX
    
    Herbert Xu pointed out that it is unsafe to call netif_tx_disable()
    from LLTX drivers because it uses dev->xmit_lock to synchronize
    whereas LLTX drivers use private locks.
    
    Convert tg3 to non-LLTX to fix this issue. tg3 is a lockless driver
    where hard_start_xmit and tx completion handling can run concurrently
    under normal conditions. A tx_lock is only needed to prevent
    netif_stop_queue and netif_wake_queue race condtions when the queue
    is full.
    
    So whether we use LLTX or non-LLTX, it makes practically no
    difference.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c71302d61f844f766a44e1b04258086cc41f624e
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Jun 17 21:55:55 2006 -0700

    [TG3]: Remove unnecessary tx_lock
    
    Remove tx_lock where it is unnecessary. tg3 runs lockless and so it
    requires interrupts to be disabled and sync'ed, netif_queue and NAPI
    poll to be stopped before the device can be reconfigured. After
    stopping everything, it is no longer necessary to get the tx_lock.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9cb3528cdbffc513eb9fb8faa45d41e397355830
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Jun 17 21:28:28 2006 -0700

    [TG3]: update version and reldate
    
    Update version to 3.60.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit df3e6548186f0baa727cd6d3a492891854bd31f2
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri May 26 17:48:07 2006 -0700

    [TG3]: Add recovery logic when MMIOs are re-ordered
    
    Add recovery logic when we suspect that the system is re-ordering
    MMIOs. Re-ordered MMIOs to the send mailbox can cause bogus tx
    completions and hit BUG_ON() in the tx completion path.
    
    tg3 already has logic to handle re-ordered MMIOs by flushing the MMIOs
    that must be strictly ordered (such as the send mailbox).  Determining
    when to enable the flush is currently a manual process of adding known
    chipsets to a list.
    
    The new code replaces the BUG_ON() in the tx completion path with the
    call to tg3_tx_recover(). It will set the TG3_FLAG_MBOX_WRITE_REORDER
    flag and reset the chip later in the workqueue to recover and start
    flushing MMIOs to the mailbox.
    
    A message to report the problem will be printed. We will then decide
    whether or not to add the host bridge to the list of chipsets that do
    re-ordering.
    
    We may add some additional code later to print the host bridge's ID so
    that the user can report it more easily.
    
    The assumption that re-ordering can only happen on x86 systems is also
    removed.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 30b6c28d2aca4669f2e609ad5d77ea2a6cf0dd3a
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri May 26 17:44:45 2006 -0700

    [TG3]: Add 5786 PCI ID
    
    Add PCI ID for BCM5786 which is a variant of 5787.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f49639e643e69ff233b14966b8d48541d2e17517
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Fri Jun 9 11:58:36 2006 -0700

    [TG3]: Handle Sun onboard tg3 chips more correctly.
    
    Get rid of all the SUN_570X logic and instead:
    
    1) Make sure MEMARB_ENABLE is set when we probe the SRAM
       for config information.  If that is off we will get
       timeouts.
    
    2) Always try to sync with the firmware, if there is no
       firmware running do not treat it as an error and instead
       just report it the first time we notice this condition.
    
    3) If there is no valid SRAM signature, assume the device
       is onboard by setting TG3_FLAG_EEPROM_WRITE_PROT.
    
    Update driver version and release date.
    
    With help from Michael Chan and Fabio Massimo Di Nitto.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 463d305bc51b8f5d0750a17ec0c9caf5181ec6d4
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon May 22 16:36:27 2006 -0700

    [TG3]: Add some missing rx error counters
    
    Add some missing rx error counters for 5705 and newer chips.
    
    Update version to 3.58.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ef34814426862c41c061520d4ac833be5914b5ba
Author: Karsten Keil <kkeil@suse.de>
Date:   Fri May 12 12:49:08 2006 -0700

    [TG3]: ethtool always report port is TP.
    
    Even with fiber cards ethtool reports that the connected port is TP,
    the patch fix this.
    
    Signed-off-by: Karsten Keil <kkeil@suse.de>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a50bb7b9af9a7c39b2aba15678eb686ae428718c
Author: Jesper Juhl <jesper.juhl@gmail.com>
Date:   Tue May 9 23:14:35 2006 -0700

    [TG3]: Fix possible NULL deref in tg3_run_loopback().
    
    tg3_run_loopback doesn't check that dev_alloc_skb() returns anything
    useful.
    
    Even if dev_alloc_skb() fails to return an skb to us we'll happily go
    on and assume it did, so we risk dereferencing a NULL pointer.  Much
    better to fail gracefully by returning -ENOMEM than crashing here.
    
    Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b276764091cf241cf0b31e8cb76c67dcf9a9c1d8
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Apr 29 19:01:06 2006 -0700

    [TG3]: Update version and reldate
    
    Update version to 3.57.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f6d9a2565bc754043f43b8f51b19f77ee0269411
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Apr 29 19:00:24 2006 -0700

    [TG3]: Fix bug in nvram write
    
    Fix bug in nvram write function. If the starting nvram address offset
    happens to be the last dword of the page, the NVRAM_CMD_LAST bit will
    not get set in the existing code. This patch fixes the bug by changing
    the "else if" to "if" so that the last dword condition always gets
    checked.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8e7a22e3eb49042c048f24bab40cf5cf8915487d
Author: Gary Zambrano <zambrano@broadcom.com>
Date:   Sat Apr 29 18:59:13 2006 -0700

    [TG3]: Add reset_phy parameter to chip reset functions
    
    Add a reset_phy parameter to tg3_reset_hw() and tg3_init_hw(). With
    the full chip reset during MAC address change, the automatic PHY reset
    during chip reset will cause a link down and bonding will not work
    properly as a result. With this reset_phy parameter, we can do a chip
    reset without link down when changing MAC address or MTU.
    
    Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 58712ef9f2cbaaeac5b32ac11810a4bbd0eeacc5
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Apr 29 18:58:01 2006 -0700

    [TG3]: Reset chip when changing MAC address
    
    Do the full chip reset when changing MAC address if ASF is enabled.
    
    ASF sometimes uses a different MAC address than the driver. Without
    the reset, the ASF MAC address may be overwritten when the driver's
    MAC address is changed.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c424cb249dae10fb7f118f89091f1329b62b92f4
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Apr 29 18:56:34 2006 -0700

    [TG3]: Add phy workaround
    
    Add some PHY workaround code to reduce jitter on some PHYs.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c8e1e82b6a97ad44517517aa58b7b794ead0bf33
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Apr 29 18:55:17 2006 -0700

    [TG3]: Call netif_carrier_off() during phy reset
    
    Add netif_carrier_off() call during tg3_phy_reset(). This is needed
    to properly track the netif_carrier state in cases where we do a
    PHY reset with interrupts disabled. The SerDes code will not run
    properly if the netif_carrier state is wrong.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bbadf503d7c7e6efe0a4cd731f8855ba08276215
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 6 21:46:34 2006 -0700

    [TG3]: Speed up SRAM access (2nd version)
    
    Speed up SRAM read and write functions if possible by using MMIO
    instead of config. cycles. With this change, the post reset signature
    done at the end of D3 power change must now be moved before the D3
    power change.
    
    IBM reported a problem on powerpc blades during ethtool self test that
    was caused by the memory test taking excessively long. Config.  cycles
    are very slow on powerpc and the memory test can take more than 10
    seconds to complete using config. cycles.
    
    David Miller informed me that an earlier version of the patch caused
    problems on sparc64 systems with built-in tg3 chips. This version
    fixes the problem by excluding all SUN built-in tg3 chips from doing
    MMIO SRAM access.
    
    TG3_FLAG_EEPROM_WRITE_PROT is also set unconditionally when
    TG3_FLG2_SUN_570X is set. This should be sane as all SUN chips are
    built-in and do not require Vaux switching.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d2d746f83b74022a50d28f7f0f496842c9cde330
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 6 21:45:39 2006 -0700

    [TG3]: Kill some less useful flags
    
    Kill the TG3_FLAG_NO_{TX|RX}_PSEUDO_CSUM flags because they are not
    very useful. This will free up some bits for new flags.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ad96b485b4224785bcca478cfba02d06c46ee575
Author: Adrian Bunk <bunk@stusta.de>
Date:   Wed Apr 5 22:21:04 2006 -0700

    [TG3]: Fix a memory leak.
    
    This patch fixes a memory leak (buf wasn't freed) spotted by the
    Coverity checker.
    
    Signed-off-by: Adrian Bunk <bunk@stusta.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 63589ed0785ffc715777a54ccb96cdfaea9edbc0
Merge: 24c7cd0... a580290...
Author: Linus Torvalds <torvalds@g5.osdl.org>
Date:   Sun Apr 2 12:58:45 2006 -0700

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (48 commits)
      Documentation: fix minor kernel-doc warnings
      BUG_ON() Conversion in drivers/net/
      BUG_ON() Conversion in drivers/s390/net/lcs.c
      BUG_ON() Conversion in mm/slab.c
      BUG_ON() Conversion in mm/highmem.c
      BUG_ON() Conversion in kernel/signal.c
      BUG_ON() Conversion in kernel/signal.c
      BUG_ON() Conversion in kernel/ptrace.c
      BUG_ON() Conversion in ipc/shm.c
      BUG_ON() Conversion in fs/freevxfs/
      BUG_ON() Conversion in fs/udf/
      BUG_ON() Conversion in fs/sysv/
      BUG_ON() Conversion in fs/inode.c
      BUG_ON() Conversion in fs/fcntl.c
      BUG_ON() Conversion in fs/dquot.c
      BUG_ON() Conversion in md/raid10.c
      BUG_ON() Conversion in md/raid6main.c
      BUG_ON() Conversion in md/raid5.c
      Fix minor documentation typo
      BFP->BPF in Documentation/networking/tuntap.txt
      ...

commit 5d9428de1a9785f10a4339f80b717be665ba51c7
Author: Eric Sesterhenn <snakebyte@gmx.de>
Date:   Sun Apr 2 13:52:48 2006 +0200

    BUG_ON() Conversion in drivers/net/
    
    this changes if() BUG(); constructs to BUG_ON() which is
    cleaner, contains unlikely() and can better optimized away.
    
    Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
    Signed-off-by: Adrian Bunk <bunk@stusta.de>

commit 5c516c10198a8258c0c40f200a5a01a3fa0a0de4
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Sat Apr 1 00:33:31 2006 -0800

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 758a613936223699f99081fc75eff7cf67b208f6
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Sat Apr 1 00:32:56 2006 -0800

    [TG3]: Revert "Speed up SRAM access"
    
    Undo commit 100c4673307f5806788791b9b886877c806afd96
    
    MMIOs timeout more quickly that PCI config cycles and some
    of these SRAM accesses can take a very long time, triggering
    the MMIO limits on some sparc64 PCI controllers and thus
    resulting in bus timeouts and bus errors.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e3a05978f18a38ae13bb3f1184abf3c999e06da9
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 27 23:21:07 2006 -0800

    [TG3]: Update version and reldate
    
    Update version to 3.55.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f475f163f128a0d9c92dfa90bcb5953fd8f9766f
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 27 23:20:14 2006 -0800

    [TG3]: Skip timer code during full lock
    
    Skip the main timer code if interrupts are disabled in the full lock
    state.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 100c4673307f5806788791b9b886877c806afd96
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 27 23:19:00 2006 -0800

    [TG3]: Speed up SRAM access
    
    Speed up SRAM read and write functions if possible by using MMIO
    instead of config. cycles. With this change, the post reset signature
    done at the end of D3 power change must now be moved before the D3
    power change.
    
    IBM reported a problem on powerpc blades during ethtool self test
    that was caused by the memory test taking excessively long. Config.
    cycles are very slow on powerpc and the memory test can take more
    than 10 seconds to complete using config. cycles. As a result, NETDEV
    WATCHDOG can be triggered during self test and the chip can end up in
    a funny state.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ff18ff023495a4f1ce7c65e7c376c4720eccf4da
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 27 23:17:27 2006 -0800

    [TG3]: Fix PHY loopback on 5700
    
    Fix PHY loopback failure on some 5700 devices.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6728a8e2e180b96ac7940dd4d766c52f8e177717
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 27 23:16:49 2006 -0800

    [TG3]: Fix bug in 40-bit DMA workaround code
    
    Need to check the TG3_FLAG_40BIT_DMA_BUG flag in the workaround code
    path instead of device flags.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 008652b337364ee994a0cd71d88a0fe9f00fc7ca
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 27 23:14:53 2006 -0800

    [TG3]: Fix probe failure due to invalid MAC address
    
    Some older bootcode in some devices may report 0 MAC address in
    SRAM when booting up from low power state. This patch fixes the
    problem by checking for a valid MAC address in SRAM and falling back
    to NVRAM if necessary.
    
    Thanks to walt <wa1ter@myrealbox.com> for reporting the problem
    and helping to debug it.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 95381c893dd71a534ab56f09b12a4e2118aa0f32
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Thu Mar 23 01:29:06 2006 -0800

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d3c7b886978bef42f5ea487dec376c482d3cd7e3
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Mar 23 01:28:25 2006 -0800

    [TG3]: Add 5755 nvram support
    
    Add 5755 nvram support.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit af36e6b6d7f4ad7a5ccfd14dfa71ec941255f93d
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Mar 23 01:28:06 2006 -0800

    [TG3]: Add 5755 support
    
    Add support for new chip 5755 which is very similar to 5787.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 056755f4d73d49b4adcbb8ecdaf75138cf166bd3
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Wed Mar 22 01:07:53 2006 -0800

    [TG3]: Bump driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 15c3b696101992c4d69962325f0e91647164427f
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Mar 22 01:06:52 2006 -0800

    [TG3]: Skip phy power down on some devices
    
    Some PHYs should not be powered down in tg3_set_power_state() because
    of bugs or other hardware limitations.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit caf636c760b33c72ebf018ff03c1b0d79ea6656a
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Mar 22 01:05:31 2006 -0800

    [TG3]: Fix SRAM access during tg3_init_one()
    
    5700 and 5701 will not return correct SRAM data when the chip is in
    D3hot power state. tg3_get_eeprom_hw_cfg() must first put the device
    in D0 before reading SRAM.
    
    Thanks to Thomas Chenault at Dell for noticing this problem.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 30ca3e376e82cc44488b1d377adfb10b5818548e
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Mon Mar 20 23:02:36 2006 -0800

    [TG3]: Don't mark tg3_test_registers() as returning const.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 81789ef5c9a435fbf94224987efe6fbb97ffab09
Author: Adrian Bunk <bunk@stusta.de>
Date:   Mon Mar 20 23:00:14 2006 -0800

    [TG3]: make drivers/net/tg3.c:tg3_request_irq() static
    
    This patch makes the needlessly global function tg3_request_irq()
    static.
    
    Signed-off-by: Adrian Bunk <bunk@stusta.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 59f1741e541bf4f6139599389610a70de49c3ad2
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Mon Mar 20 22:39:21 2006 -0800

    [TG3]: netif_carrier_off runs too early; could still be queued when init fails
    
    Move the netif_carrier_off() call from tg3_init_one()->
    tg3_init_link_config() to tg3_open() as is the convention for most other
    network drivers.
    
    I was getting a panic after a tg3 device failed to initialize due to DMA
    failure.  The oops pointed to the link watch queue with spinlock debugging
    enabled.  Without spinlock debugging, the Oops didn't occur.
    
    I suspect that the link event was getting queued but not executed until
    after the DMA test had failed and the device was freed.  The link event was
    then operating on freed memory, which could contain anything.  With this
    patch applied, the Oops no longer occurs.
    
    [ Based upon feedback from Michael Chan, we move netif_carrier_off()
      to the end of tg3_init_one() instead of moving it to tg3_open() -DaveM ]
    
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e9e678006ee865b0f7e53069b0e519141a710a6e
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:29:52 2006 -0800

    [TG3]: update version and reldate
    
    Update version to 3.52.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c4e6575c78b83928c470d81b271909084a2efd37
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:29:32 2006 -0800

    [TG3]: Add firmware version info
    
    Add fw_version information to ethtool -i.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1820180b0e59cc48019414018b180518059f50d3
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:29:15 2006 -0800

    [TG3]: nvram cleanup
    
    Some nvram related cleanup:
    
    1. Add a tg3_nvram_read_swab() since swabing the data is frequently
    done.
    
    2. Add a function to convert nvram address to physical address
    instead of doing it in 2 separate places.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 79f4d13a15774c2d442b619bad95a4c612eed4f3
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:28:57 2006 -0800

    [TG3]: Fixup memory test for 5787
    
    Ethtool memory test on 5787 requires a new memory table.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fcfa0a32c767219c1bdad621ef4a3aff1904cbbd
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:28:41 2006 -0800

    [TG3]: Add new one-shot MSI handler
    
    Support one-shot MSI on 5787.
    
    This one-shot MSI idea is credited to David Miller. In this mode, MSI
    disables itself automatically after it is generated, saving the driver
    a register access to disable it for NAPI.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9c27dbdf64cba05d0cacc343118a7fd01d4b82f7
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:28:27 2006 -0800

    [TG3]: Add ipv6 checksum support
    
    Support ipv6 tx csum on 5787 by setting NETIF_F_HW_CSUM.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5a6f3074c2ea5a7b4ff5b18f0e1fd9b1257e1a29
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:28:05 2006 -0800

    [TG3]: Add new hard_start_xmit
    
    Support 5787 hardware TSO using a new flag TG3_FLG2_HW_TSO_2.
    
    Since the TSO interface is slightly different and these chips have
    finally fixed the 4GB DMA problem and do not have the 40-bit DMA
    problem, a new hard_start_xmit is used for these chips. All previous
    chips will use the old hard_start_xmit that is now renamed
    tg3_start_xmit_dma_bug().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1b27777a9b9b2b6d1c06000b7a31262d198b4238
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:27:48 2006 -0800

    [TG3]: Add 5787 nvram support
    
    Support additional nvrams and new nvram format for 5787 and 5754.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d9ab5ad12b0d865bdb1b750d81192d34465541e9
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 22:27:35 2006 -0800

    [TG3]: Add 5787 and 5754 basic support
    
    Add basic support for 2 new chips 5787 and 5754.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4f81c32b028aecd818634b1ef36aae3b2b3e66ce
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 21:33:42 2006 -0800

    [TG3]: Fix tg3_get_ringparam()
    
    Fix-up tg3_get_ringparam() to return the correct parameters.
    
    Set the jumbo rx ring parameter only if it is supported by the chip
    and currently in use.
    
    Add missing value for tx_max_pending, noticed by Rick Jones.
    
    Update version to 3.51.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e75f7c900944aa90831f6d343ca40090a68b56dd
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 21:33:26 2006 -0800

    [TG3]: Add some missing netif_running() checks
    
    Add missing netif_running() checks in tg3's dev->set_multicast_list()
    and dev->set_mac_address(). If not netif_running(), these 2 calls can
    simply return 0 after storing the new settings if required.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2e2e4f5c996d577383c5cb584b153b39f4961155
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 17:48:18 2006 -0800

    [TG3]: Update version and reldate
    
    Update version to 3.50.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bc1c756741b065cfebf850e4164c0e2aae9d527f
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 17:48:03 2006 -0800

    [TG3]: Support shutdown WoL.
    
    Support WoL during shutdown by calling
    tg3_set_power_state(tp, PCI_D3hot) during tg3_close().
    
    Change the power state parameter to pci_power_t type and use
    constants defined in pci.h.
    
    Certain ethtool operations cannot be performed after tg3_close()
    because the device will go to low power state. Add return -EAGAIN
    in such cases where appropriate.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4e3a7aaa28db952392814f889dfbd25672266d29
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 17:47:44 2006 -0800

    [TG3]: Enable TSO by default
    
    Enable TSO by default on newer chips that support TSO in hardware.
    Leave TSO off by default on older chips that do firmware TSO because
    performance is slightly lower.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d4d2c558fd3e1f5e386b153f194aa8f0be496c77
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 20 17:47:20 2006 -0800

    [TG3]: Add support for 5714S and 5715S
    
    Add support for 5714S and 5715S.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c4a1745aa09fc110afdefea0e5d025043e348bae
Merge: 88dcb91... ac0eb3e...
Author: Linus Torvalds <torvalds@g5.osdl.org>
Date:   Mon Mar 20 11:57:50 2006 -0800

    Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
    
    * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: (230 commits)
      [SPARC64]: Update defconfig.
      [SPARC64]: Fix 2 bugs in huge page support.
      [SPARC64]: CONFIG_BLK_DEV_RAM fix
      [SPARC64]: Optimized TSB table initialization.
      [SPARC64]: Allow CONFIG_MEMORY_HOTPLUG to build.
      [SPARC64]: Use SLAB caches for TSB tables.
      [SPARC64]: Don't kill the page allocator when growing a TSB.
      [SPARC64]: Randomize mm->mmap_base when PF_RANDOMIZE is set.
      [SPARC64]: Increase top of 32-bit process stack.
      [SPARC64]: Top-down address space allocation for 32-bit tasks.
      [SPARC64] bbc_i2c: Fix cpu check and add missing module license.
      [SPARC64]: Fix and re-enable dynamic TSB sizing.
      [SUNSU]: Fix missing spinlock initialization.
      [TG3]: Do not try to access NIC_SRAM_DATA_SIG on Sun parts.
      [SPARC64]: First cut at VIS simulator for Niagara.
      [SPARC64]: Fix system type in /proc/cpuinfo and remove bogus OBP check.
      [SPARC64]: Add SMT scheduling support for Niagara.
      [SPARC64]: Fix 32-bit truncation which broke sparsemem.
      [SPARC64]: Move over to sparsemem.
      [SPARC64]: Fix new context version SMP handling.
      ...

commit d378aca6ec708bfb24df5c47801b1f2399efc481
Merge: abc71c4... 7705a87...
Author: Jeff Garzik <jeff@garzik.org>
Date:   Mon Mar 20 04:38:03 2006 -0500

    Merge branch 'master'

commit 72b845e04e99298e5179b31e8de16afed52a2627
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Tue Mar 14 14:11:48 2006 -0800

    [TG3]: Do not try to access NIC_SRAM_DATA_SIG on Sun parts.
    
    Sun does't put an SEEPROM behind the tigon3 chip, among other things,
    so accesses to these areas just give bus timeouts.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4a29cc2e503b33a1e96db4c3f9a94165f153f259
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun Mar 19 13:21:12 2006 -0800

    [TG3]: 40-bit DMA workaround part 2
    
    The 40-bit DMA workaround recently implemented for 5714, 5715, and
    5780 needs to be expanded because there may be other tg3 devices
    behind the EPB Express to PCIX bridge in the 5780 class device.
    
    For example, some 4-port card or mother board designs have 5704 behind
    the 5714.
    
    All devices behind the EPB require the 40-bit DMA workaround.
    
    Thanks to Chris Elmquist again for reporting the problem and testing
    the patch.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit abc71c46dc0a12ab7fddc18cfe4f4aa26808c79b
Merge: 30dcbf2... 232a347...
Author: Jeff Garzik <jeff@garzik.org>
Date:   Thu Mar 16 19:27:08 2006 -0500

    Merge branch 'upstream-fixes'

commit 0ade309be739eceedc4812798da09d698a59867d
Author: Adrian Bunk <bunk@stusta.de>
Date:   Sat Mar 11 18:49:38 2006 -0800

    [TG3] tg3_bus_string(): remove dead code
    
    The Coverity checker spotted this dead code (note that (clock_ctrl == 7)
    is already handled above).
    
    Signed-off-by: Adrian Bunk <bunk@stusta.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 749dfc70554f2c9e6624ac843d66571265ed9338
Merge: 74f5ec2... 0992a5d...
Author: Jeff Garzik <jeff@garzik.org>
Date:   Sat Mar 11 13:35:31 2006 -0500

    Merge branch 'upstream-fixes'

commit 72f2afb8a6858edd9335cd158eb21053a0c2c39a
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Mar 6 19:28:35 2006 -0800

    [TG3]: Add DMA address workaround
    
    Add DMA workaround for chips that do not support full 64-bit DMA
    addresses.
    
    5714, 5715, and 5780 chips only support DMA addresses less than 40
    bits. On 64-bit systems with IOMMU, set the dma_mask to 40-bit so
    that pci_map_xxx() calls will map the DMA address below 40 bits if
    necessary. On 64-bit systems without IOMMU, set the dma_mask to
    64-bit and check for DMA addresses exceeding the limit in
    tg3_start_xmit().
    
    5788 only supports 32-bit DMA so need to set the mask appropriately
    also.
    
    Thanks to Chris Elmquist at SGI for reporting and helping to debug
    the problem on 5714.
    
    Thanks to David Miller for explaining the HIGHMEM and DMA stuff.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f71e130966ba429dbd24be08ddbcdf263df9a5ad
Author: Arjan van de Ven <arjan@infradead.org>
Date:   Fri Mar 3 21:33:57 2006 -0500

    Massive net driver const-ification.

commit 051d3cbd96909b2fe6b5038e7bbe77f41356db05
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Feb 27 12:51:27 2006 -0800

    [TG3]: Fix Sun tg3 variant detection.
    
    Some Sun parts don't have PCI_VENDOR_ID_SUN in the subsystem
    vendor ID.  So add another fallback test, which is the name
    of the OBP firmware device tree node.  If it's a Sun part we'll
    get "network", else it will be named "ethernet".
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6e2be3ea4fab4d1c02e369719311e8d7ae6cc7c1
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Thu Feb 2 17:29:59 2006 -0800

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7faa006f94fda56a587242b2a22fa19abf840222
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Feb 2 17:29:28 2006 -0800

    [TG3]: Flush tg3_reset_task()
    
    Make sure tg3_reset_task() is flushed in the close and suspend paths
    as noted by Jeff Garzik.
    
    In the close path, calling flush_scheduled_work() may cause deadlock
    if linkwatch_event() is on the workqueue. linkwatch_event() will try
    to get the rtnl_lock() which is already held by tg3_close(). So
    instead, we set a flag in tg3_reset_task() and tg3_close() polls
    the flag until it is cleared.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ec41c7dfd525468decb9da9281dbc9ed82d98c98
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jan 17 02:40:55 2006 -0800

    [TG3]: Refine nvram locking
    
    Add nvram lock count so that calls to tg3_nvram_lock()/unlock() can
    be nested. Add error checking to all callers of tg3_nvram_lock()
    where appropriate. To prevent nvram lock failures after halting the
    firmware, it is also necessary to release firmware's nvram lock in
    tg3_halt_cpu().
    
    Update version to 3.48.
    
    Based on David Miller's initial patch.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fd30333d0fab9e870af89e112454996c188655e9
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Tue Jan 3 14:19:25 2006 -0800

    [TG3]: fixup tot_len calculation
    
    Turning struct iphdr::tot_len into __be16 added sparse warning.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 14c850212ed8f8cbb5972ad6b8812e08a0bc901c
Author: Arnaldo Carvalho de Melo <acme@mandriva.com>
Date:   Tue Dec 27 02:43:12 2005 -0200

    [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h
    
    To help in reducing the number of include dependencies, several files were
    touched as they were getting needed headers indirectly for stuff they use.
    
    Thanks also to Alan Menegotto for pointing out that net/dccp/proto.c had
    linux/dccp.h include twice.
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a8b554e75b0c14d5e12a11eaea604e536f49da29
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Wed Dec 28 13:05:41 2005 -0800

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 091465d7514893a55dcf63e420698b21159c39a7
Author: Chris Elmquist <chrise@sgi.com>
Date:   Tue Dec 20 13:25:19 2005 -0800

    [TG3]: ethtool -d hangs PCIe systems
    
    Resubmitting after recommendation to use GET_REG32_1() instead of
    GET_REG32_LOOP(..., 1).  Retested.  Problem remains fixed.
    
    Prevent tg3_get_regs() from reading reserved and undocumented registers
    at RX_CPU_BASE and TX_CPU_BASE offsets which caused hostile behavior
    on PCIe platforms.
    
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 38690194bc897dd60a61a71b15e861e13b5d8bdd
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Dec 19 16:27:28 2005 -0800

    [TG3]: Fix ethtool memory test
    
    Skip the memory 0xb50 to 0x1000 during "ethtool -t" memory test.
    Overwriting memory in this region can cause ASF problems.
    
    Update version and release date.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b401e9e2ec44a5fc1d8053546276bff584b7118e
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Dec 19 16:27:04 2005 -0800

    [TG3]: Add tw32_wait_f() for some sensitive registers
    
    The tw32_f() function (register write with immediate read flush) can
    hang when used on some registers to switch clock frequencies and
    power. A new tw32_wait_f() is added for such registers with the
    delay before the read and after the read.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit dc56b7d46dd2b303a844166ef931270b882bf08c
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Dec 19 16:26:28 2005 -0800

    [TG3]: Some low power fixes
    
    Add some missing workarounds in tg3_set_power_state():
    
    1. Workaround to prevent overdrawing current on 5714.
    
    2. Do not power down 5700's PHY because of hw limitation.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8c2dc7e1e7213c55f1b97eba09de6c0cee9ad12f
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Dec 19 16:26:02 2005 -0800

    [TG3]: Fix peer device handling
    
    Locate the pdev_peer for dual port 5714 NIC devices in addition to
    5704 devices. The name is also changed to tg3_find_peer() from
    tg3_find_5704_peer(). It is also necessary to call netdev_priv() to
    get to the peer's private tg3 structure.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6921d201f77e14848df2eaa597e26525f468abea
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Dec 13 21:15:53 2005 -0800

    [TG3]: Fix low power state
    
    Fix the following bugs in tg3_set_power_state():
    
    1. Both WOL and ASF flags require switching to aux power.
    
    2. Add a missing handshake with firmware to enable WOL.
    
    3. Turn off the PHY if both WOL and ASF are disabled.
    
    4. Add nvram arbitration before halting the firmware.
    
    5. Fix tg3_setup_copper_phy() to switch to 100Mbps when
       changing to low power state.
    
    Update revision and date.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 16fe9d74f14ed74af778c5db7f9129e29916f4a7
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Dec 13 21:09:54 2005 -0800

    [TG3]: Fix 5704 single-port mode
    
    If the dual-port 5704 is configured as a single-port device with
    only one PCI function, it would trigger a BUG() condition in
    tg3_find_5704_peer(). This fixes the problem by returning its
    own pdev if the peer cannot be found.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6a9eba15f51c56da637e45ea1316eaa2a848986a
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Dec 13 21:08:58 2005 -0800

    [TG3]: Fix suspend and resume
    
    Fix tg3_suspend() and tg3_resume() by clearing and setting the
    TG3_FLAG_INIT_COMPLETE flag when appropriate. tg3_set_power_state()
    looks at TG3_FLAG_INIT_COMPLETE on the peer device to determine
    when to appropriately switch to aux power.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 381291b7d3e17ac966498312dc571dcca1b93efc
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Dec 13 21:08:21 2005 -0800

    [TG3]: Fix nvram arbitration bugs.
    
    The nvram arbitration rules were not strictly followed in a few places
    and this could lead to reading corrupted values from the nvram.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1f064a87c80c86bd3878e6633de61e8b71aa6788
Author: Stephen Hemminger <shemminger@osdl.org>
Date:   Tue Dec 6 17:36:44 2005 -0800

    [TG3]: remove warning on race
    
    [ Move assosciated code comment to the correct spot, and
      update driver version and release date -DaveM ]
    
    Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f9a5f7d3f3319aac02a7a36a2fea10bd33c3d16a
Author: Tobias Klauser <tklauser@nuerscht.ch>
Date:   Sat Oct 29 15:09:26 2005 +0200

    [PATCH] drivers/net/tg3: Use the DMA_{32,64}BIT_MASK constants
    
    This one from my DMA_{32,64}BIT_MASK series did not seem to make it
    through to upstream.
    
    Use the DMA_{32,64}BIT_MASK constants from dma-mapping.h when calling
    pci_set_dma_mask() or pci_set_consistent_dma_mask()
    This patch includes dma-mapping.h explicitly because it caused errors
    on some architectures otherwise.
    See http://marc.theaimsgroup.com/?t=108001993000001&r=1&w=2 for details
    
    Signed-off-by: Tobias Klauser <tklauser@nuerscht.ch>
    Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

commit b4558ea93d66a43f7990d26f145fd4c54a01c9bf
Author: Jesper Juhl <jesper.juhl@gmail.com>
Date:   Fri Oct 28 16:53:13 2005 -0400

    drivers/net: Remove pointless checks for NULL prior to calling kfree()

commit 37ff238d68683d42e7363eee3303773906c336d9
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 26 15:49:51 2005 -0700

    [PATCH] tg3: update version and minor fixes
    
    Update version and reldate and add more sanity checking to
    tg3_set_settings().
    
    Signed-off-by: Gary Zambrano <zambrano@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

commit 28fbef78a420acdea20570d31f3bdcbfa0cac0d2
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 26 15:48:35 2005 -0700

    [PATCH] tg3: fix ASF heartbeat
    
    Change the ASF heart beat to 5 seconds for faster detection of system
    crash. The driver sends the heartbeat every 2 seconds and the ASF
    firmware will timeout and reset the device if no heartbeat is received
    after 5 seconds. The old scheme of 2 minutes is ineffective.
    
    tg3_write_mem_fast() is added to speed up the IO to send the heartbeat.
    When no workaround is needed, it will use direct MMIO to memory space
    to write to memory.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

commit a4e2b347848bf626b822599329933887dc90e50f
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 26 15:46:52 2005 -0700

    [PATCH] tg3: add 5714/5715 support
    
    Add complete support for 5714/5715. These chips are very similar to
    5780 so the changes are very trivial. A TG3_FLG2_5780_CLASS flag is
    added to identify these chips.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

commit ed39f731ab2e77e58122232f6e27333331d7793d
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Mon Oct 3 16:25:23 2005 -0700

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 399de50bbbb2501a6db43daaa8a2dafbc9bcfe0c
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Oct 3 14:02:39 2005 -0700

    [TG3]: Refine AMD K8 write-reorder chipset test.
    
    Test for VIA K8T800 north bridge instead of AMD K8 HyperTransport
    bridge based on new information from Andi Kleen. The AMD
    HyperTransport interface is not responsible for PCI transactions
    and so the re-ordering is more likely done by the VIA north bridge.
    This code is subject to change if we get more information from AMD
    or VIA.
    
    PCI Express devices are excluded from doing the read flush since all
    chipsets in the write_reorder list are PCI chipsets.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c8a6c2963982c68475f409aeee21aa80b923cb9c
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Tue Sep 27 12:13:38 2005 -0700

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f9804ddbeec2ea709255830a8822bfb4e7584f6a
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Sep 27 12:13:10 2005 -0700

    [TG3]: misc. fixes
    
    Fix interrupt test handler by adding check for IRQ assertion in
    PCI_STATE register in addition to the status block updated bit.
    
    Add test for valid ethernet address in tg3_set_mac_addr().
    
    Add tg3_bus_string() to setup the PCI bus speed/width string for all
    PCI/PCIX/PCI Express devices. This is used to print the bus type
    during init_one().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c94e39418ab6eccf863581f4e0d847da0080b2d3
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Sep 27 12:12:42 2005 -0700

    [TG3]: 5780 PHY fixes
    
    Fix 5780 PHY related problems:
    
    1. MAC_RX_MODE reset must be done before setting up the MAC_MODE
       register on 5705_PLUS chips or the chip will stop receiving after
       a while. The MAC_RX_MODE reset is needed to prevent intermittently
       losing the first receive packet on serdes chips.
    
    2. Skip MAC loopback test on 5780 because of hardware errata. Normal
       traffic including PHY loopback is not affected by the errata.
    
    3. PHY loopback fails intermittently on 5708S and this is fixed by
       putting the PHY in loopback mode first before programming the MAC
       mode register. A MAC_RX_MODE reset is also added.
    
    4. Return -EINVAL in tg3_nway_reset() if device is in TBI mode. Allow
       nway_reset if 5780S is in parallel detect mode.
    
    5. Add missing PHY IDs in KNOWN_PHY_ID() macro.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c58ec93245a1fb7354f9e331960380827b9f41db
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Sep 17 00:46:27 2005 -0700

    [TG3]: Fix 4GB boundary tx handling
    
    Fix and simplify the workaround code for the 4GB boundary tx buffer
    hardware bug.
    
    1. Need to unmap the original SKB's dma addresses if a new SKB cannot
       be allocated.
    
    2. Need to pass the base flag to tigon3_4gb_hwbug_workaround() or TSO
       won't work properly.
    
    3. The guilty entry and length parameters for
       tigon3_4gb_hwbug_workaround() are removed as they are not necessary.
    
    4. Remove assumption that only one fragment can hit the 4GB boundary.
       Another fragment can hit 8GB for example.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 22abe310bc4b0c684fd3716af6b6116ff1011707
Author: Peter Hagervall <hager@cs.umu.se>
Date:   Fri Sep 16 17:01:03 2005 -0700

    [TG3]: Sparse fixes for tg3
    
    Change 0 to NULL where appropriate.
    
    Signed-off-by: Peter Hagervall <hager@cs.umu.se>
    Acked-by: Jeff Garzik <jgarzik@pobox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1cbf07478bbf3e350a2025bc5ea23fedaa95855a
Author: David S. Miller <davem@davemloft.net>
Date:   Fri Sep 16 16:59:20 2005 -0700

    [TG3]: Add AMD K8 to list of write-reorder chipsets.
    
    Thanks to Andy Stewart for the report and testing
    debug patches from Michael Chan.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2ff436977ed3eeca2d39ae40bbfdb1ce58da8453
Author: John W. Linville <linville@tuxdriver.com>
Date:   Mon Sep 12 14:44:20 2005 -0700

    [TG3]: Add support for ETHTOOL_GPERMADDR.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4f63b877726135b19ae73108acf9e0ebb4323dda
Author: John W. Linville <linville@tuxdriver.com>
Date:   Mon Sep 12 14:43:18 2005 -0700

    [TG3]: Do not count non-error frames dropped by the hardware as rx_errors.
    
    Instead, count them as part of rx_missed_errors.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 74da1edf264c5982b465041a5706caff25d7e1ed
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Mon Sep 5 17:56:11 2005 -0700

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 38f3843ed6bdbcff9465386c3539523466880320
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Sep 5 17:53:32 2005 -0700

    [TG3]: Use status tag to check for new events
    
    Use the status tag to determine if there are new events in
    tg3_interrupt_tagged(). We discussed about this a while ago with Grant
    Grundler and DaveM. This scheme makes it unnecessary to clear the
    updated bit in the status block when using tagged mode, and only
    a simple comparison is needed to determine if there are new events.
    
    The tp->lock around netif_rx_complete() and tg3_restart_ints() is also
    removed. It is unnecessary with DaveM's new locking scheme.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 61487480dd79acc5e82b08cd29cbcbd3301645fa
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Sep 5 17:53:19 2005 -0700

    [TG3]: Remove status block access in tg3_msi() and add prefetches
    
    Remove unnecessary status block accesses in tg3_msi(). Since MSI is
    not shared, it is unnecessary to read the status block to determine if
    there are any new events in the MSI handler. It is also unnecessary to
    clear the updated bit in the status block.
    
    Since the poll list is per-cpu, tg3_poll() will be scheduled to run on
    the same CPU that received the MSI. Prefetches for the status block
    and the next rx descriptors are added in tg3_msi() to improve their
    access times when tg3_poll() runs.
    
    In the non-MSI irq handlers, we need to check the status block because
    interrupts may be shared. Only prefetches for the next rx descriptors
    are added.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9f40dead25957434937f2b1872e9f4b43605f0ad
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Sep 5 17:53:06 2005 -0700

    [TG3]: Add PHY loopback test
    
    Improve ethtool loopback self test by adding PHY loopback to the
    existing MAC loopback test.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4009a93d8e85f685b02794aee28e3272be862e2b
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Sep 5 17:52:54 2005 -0700

    [TG3]: Add ethtool -p support
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4c98748763ce25c5394a7edd686d92c70b4fac38
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Sep 5 17:52:38 2005 -0700

    [TG3]: Minor 5780 and 5752 fixes
    
    Minor SerDes bug fixes for 5780S and nvram bug fixes for 5780 and
    5752.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 75c80c382fbd08acf06fbef9d54c9844e806a8b4
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Sep 1 17:42:23 2005 -0700

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 51b9146869ab9492da785c5c9321d85f01655ab6
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Sep 1 17:41:28 2005 -0700

    [TG3]: Minimize locking in TX path.
    
    This is similar to Eric Dumazet's tx_lock patch for tg3 but takes it
    one step further to eliminate the tx_lock in the tx_completion path
    when the tx queue is not stopped.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 087fe256f0aef8d16b19a30c6fb10b899bf1a701
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Aug 9 20:17:41 2005 -0700

    [TG3]: Fix bug in setting a tg3_flag
    
    Found a bug while reviewing the patches the second time.
    
    The TG3_FLAG_TXD_MBOX_HWBUG flag is set after the register access
    methods have been determined. This patch fixes it by moving it up before
    the various access methods are assigned.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 15f5a585c6b8dac31ed0a55693aacf51934f0f5d
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Aug 9 20:17:28 2005 -0700

    [TG3]: Eliminate one register write in tg3_restart_ints()
    
    The register write to register 0x68 to restart interrupts is unnecessary
    as the interrupt wasn't masked in that register by the irq handler. This
    will save one register write in the fast path.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6892914fb7980d844f2bac859f4095df9ebd18da
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Aug 9 20:17:14 2005 -0700

    [TG3]: Add indirect register method for 5703 behind ICH
    
    This patch adds the new workaround for 5703 A1/A2 if it is behind
    certain ICH bridges. The workaround disables memory and uses config.
    cycles only to access all registers. The 5702/03 chips can mistakenly
    decode the special cycles from the ICH chipsets as memory write cycles,
    causing corruption of register and memory space. Only certain ICH
    bridges will drive special cycles with non-zero data during the address
    phase which can fall within the 5703's address range. This is not an ICH
    bug as the PCI spec allows non-zero address during special cycles.
    However, only these ICH bridges are known to drive non-zero addresses
    during special cycles.
    
    The indirect_lock is also changed to spin_lock_irqsave from spin_lock_bh
    because it is used in irq handler when using the indirect method to
    disable interrupts.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 09ee929cccfd0b56ea3724b3c6299fbbe813df43
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Aug 9 20:17:00 2005 -0700

    [TG3]: Add mailbox read method
    
    This patch adds the mailbox read method and also adds an inline function
    tw32_mailbox_f() for mailbox writes that require read flush.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1ee582d8e49a1c9dd43b2599f1cd26507182a8d4
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Aug 9 20:16:46 2005 -0700

    [TG3]: Add various register methods
    
    This patch adds various dedicated register read/write methods for the
    existing workarounds, including PCIX target workaround, write with read
    flush, etc. The chips that require these workarounds will use these
    dedicated access functions.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2009493065e01b1fe27c1b98ffbcfab98e185f72
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Aug 9 20:16:32 2005 -0700

    [TG3]: Add basic register access function pointers
    
    This patch adds the basic function pointers to do register accesses in
    the fast path. This was suggested by David Miller. The idea is that
    various register access methods for different hardware errata can easily
    be implemented with these function pointers and performance will not be
    degraded on chips that use normal register access methods.
    
    The various register read write macros (e.g. tw32, tr32, tw32_mailbox)
    are redefined to call the function pointers.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d4ef16088913002255eab9958fff4e98b3b507d6
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Aug 25 15:31:41 2005 -0700

    [TG3]: Fix ethtool loopback test lockup
    
    The tg3_abort_hw() call in tg3_test_loopback() is causing lockups on
    some devices. tg3_abort_hw() disables the memory arbiter, causing
    tg3_reset_hw() to hang when it tries to write the pre-reset signature.
    tg3_abort_hw() should only be called after the pre-reset signature has
    been written. This is all done in tg3_reset_hw() so the tg3_abort_hw()
    call is unnecessary and can be removed.
    
    [ Also bump driver version and release date. -DaveM ]
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 034ea6388a51f571b45ef1f0fa4ed4298691768e
Author: David S. Miller <davem@davemloft.net>
Date:   Fri Aug 19 12:57:31 2005 -0700

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit da6b2d01d6bd2e79fd4f7a08acd37dc4e8fcdce8
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Aug 19 12:54:29 2005 -0700

    [TG3]: Fix SerDes detection
    
    A problem was reported by Grant Grundler on an HP rx8620 using IOX
    Core LAN partno(A7109-6) 5701 copper NIC. The tg3 driver mistakenly
    detects this NIC as having a SerDes PHY and link does not come up as a
    result.
    
    The problem was caused by an incorrectly programmed eeprom that set the
    NIC_SRAM_DATA_CFG_PHY_TYPE_FIBER bit in the NIC_SRAM_DATA_CFG location.
    
    This patch will override the NIC_SRAM_DATA_CFG_PHY_TYPE_FIBER bit if a
    valid PHY ID is read from the MII registers on older 570x chips where
    the MII interface is not used on SerDes chips. On newer chips such as
    the 5780 that use MII for both copper and SerDes, SerDes detection must
    rely on the eeprom.
    
    This patch will make the SerDes detection identical to versions 3.25 and
    older.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Grant Grundler <iod00d@hp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7d3f4c97723c4ec4e5d85e6e70084b02e6be8788
Author: David S. Miller <davem@davemloft.net>
Date:   Sat Aug 6 06:35:48 2005 -0700

    [TG3]: Save initial PCI state before registering the netdevice.
    
    Else on SMP systems it is possible for hotplug to execute,
    invoke tg3_open(), and end up loading the uninitialized
    PCI register save area into the card.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fc87670b6cd63abc6fc4e3a115741984750d1fbc
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Jul 25 12:45:32 2005 -0700

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 747e8f8bff56955374521fa4d488e702d4b0c04f
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 25 12:33:22 2005 -0700

    [TG3]: add 5780 fiber support
    
    Add 5780S support by adding a new tg3_setup_fiber_mii_phy() function and
    a timer function for parallel link detection. 5780S uses standard MII
    registers for 1000BaseX and runs in GMII mode as opposed to TBI mode on
    older serdes chips.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ef7f5ec0deb2bcdc005f30f6f75f79c65c577cf5
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 25 12:32:25 2005 -0700

    [TG3]: disallow jumbo TSO on 5780
    
    Disallow jumbo TSO on 5780 due to hardware restrictions.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fdfec1726b14b4b2121adcfcbba98d4cc1a61751
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 25 12:31:48 2005 -0700

    [TG3]: consolidate all DMA water mark settings
    
    Consolidate all DMA watermark settings for standard and jumbo frames on
    all chips in tg3_init_bufmgr_config() and add new settings for 5780.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7e72aad48c3790636bfa006f3b0027852ccad47e
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 25 12:31:17 2005 -0700

    [TG3]: add variable buffer size for standard ring
    
    Add a new rx_pkt_buf_sz to the tg3 structure to support variable buffer
    sizes on the standard ring.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0f893dc6ec890058d926224c8aa254d8621e0ea3
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 25 12:30:38 2005 -0700

    [TG3]: add 5780 basic jumbo frame support
    
    Add basic jumbo frames support for 5780. This chip supports jumbo frames
    on the standard receive ring without the jumbo ring. The
    TG3_FLAG_JUMBO_ENABLE is changed to TG3_FLAG_JUMBO_RING_ENABLE to
    indicate using the jumbo ring on 5704 and older chips. A new
    TG3_FLG2_JUMBO_CAPABLE flag is added to indicate jumbo frames support
    with or without the jumbo ring.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4cf78e4fb678807e3f8265c9e9031a84f5c601f0
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 25 12:29:19 2005 -0700

    [TG3]: add 5780 basic support
    
    Add 5780 PCI IDs, chip IDs, and other basic support.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 93e266f600f4048fe7a2e8803abb9f8baff84aa7
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Jul 5 14:43:19 2005 -0700

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d244c892c8e23d6baba88af88f78f7201a224d39
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jul 5 14:42:33 2005 -0700

    [TG3]: support for ethtool -C
    
    Add support for ethtool -C with verification of user parameters.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5f70eaa0d5768775a7492f3e3841fcca94bb0d13
Author: David S. Miller <davem@davemloft.net>
Date:   Fri Jun 24 20:21:01 2005 -0700

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bbe832c09233738c100145fd535b6b8fc97640f6
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Jun 24 20:20:04 2005 -0700

    [TG3]: Refinements to new locking strategy.
    
    1. Move tp->irq_sync = 0 to before the interrupt mailbox IO in
       tg3_enable_ints() so that the interrupt handler will always see
       irq_sync == 0 when interrupts are enabled.
    
    2. Remove the tg3_enable_ints() call in tg3_reset_hw(). Interrupts are
       always enabled explicitly or through tg3_netif_start(). This is to
       prevent interrupts being enabled while poll is disabled.
    
    3. Update trans_start with jiffies in tg3_netif_stop() to prevent false
       NETDEV WATCHDOG.
    
    4. Pass in the proper irq_sync parameter to tg3_full_lock() depending on
       netif_running() in some of the ethtool set calls.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f47c11eeccc8820010992eb32dbe7370a08f8bd3
Author: David S. Miller <davem@davemloft.net>
Date:   Fri Jun 24 20:18:35 2005 -0700

    [TG3]: Eliminate all hw IRQ handler spinlocks.
    
    Move all driver spinlocks to be taken at sw IRQ
    context only.
    
    This fixes the skb_copy() we were doing with hw
    IRQs disabled (which is illegal and triggers a
    BUG() with HIGHMEM enabled).  It also simplifies
    the locking all over the driver tremendously.
    
    We accomplish this feat by creating a special
    sequence to synchronize with the hw IRQ handler
    using a binary state and synchronize_irq().
    This idea is from Herbert Xu.
    
    Thanks to Michael Chan for helping to track down
    all of the race conditions in initial versions
    of this code.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cd024c8baf9756759c57f0a19be639da8d3d4f8c
Author: David S. Miller <davem@davemloft.net>
Date:   Fri Jun 24 20:17:10 2005 -0700

    [TG3]: Fix missing memory barriers and SD_STATUS_UPDATED bit clearing.
    
    There must be a rmb() between reading the status block tag
    and calling tg3_has_work().  This was missing in tg3_mis()
    and tg3_interrupt_tagged().  tg3_poll() got it right.
    
    Also, SD_STATUS_UPDATED must be cleared in the status block
    right before we call tg3_has_work().  Only tg3_poll() got this
    wrong.
    
    Based upon patches and commentary from Grant Grundler and
    Michael Chan.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ed7fce6c13bdd802817e1988d67047d432e7e30b
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Jun 8 14:15:52 2005 -0700

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6d1cfbab4de64f2d0c5b0f81177ade0d75b69288
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jun 8 14:13:14 2005 -0700

    [TG3]: Fix 5700/5701 DMA corruption on Apple G4.
    
    Fix 5700/5701 DMA write corruption on Apple G4 by detecting the Apple
    UniNorth PCI 1.5 chipset and adjusting the DMA write boundary to 16. DMA
    test fails to detect the problem with this chipset.
    
    Thanks to Manuel Perez Ayala for reporting the problem and helping to
    debug it.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 15def7bfb6902aa2b2bc67059f26d696fb27c235
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Jun 6 15:22:56 2005 -0700

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9ba27794197a18168b99ccecfb7b799f18b64426
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jun 6 15:16:20 2005 -0700

    [TG3] Fix link failure in 5701
    
    On some 5701 devices with older bootcode, the LED configuration bits in
    SRAM may be invalid with value zero. The fix is to check for invalid
    bits (0) and default to PHY 1 mode. Incorrect LED mode will lead to
    error in programming the PHY.
    
    Thanks to Grant Grundler for debugging the problem.
    
    >From Grant:
    | In May, 2004,  tg3 v3.4 changed how MAC_LED_CTRL (0x40c) was getting
    | programmed and how to determine what to program into LED_CTRL. The new
    | code trusted NIC_SRAM_DATA_CFG (0x00000b58) to indicate what to write
    | to LED_CTRL and MII EXT_CTRL registers. On "IOX Core Lan", SRAM was
    | saying MODE_MAC (0x0) and that doesn't work.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 49cabf49abd7676d026a61baabf5aae9337a82be
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jun 6 15:15:17 2005 -0700

    [TG3]: Add TSO firmware license
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1b62815193f6c20c60958e5347751155833e3d35
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:59:49 2005 -0700

    [TG3]: Fix bug in tg3_load_firmware_cpu
    
    Add tg3_nvram_lock() and tg3_nvram_unlock() calls around tg3_halt_cpu().
    It is possible that the bootcode may be loading code from nvram during
    this call and stopping the cpu without getting the lock may cause
    uncompleted nvram data to be left in the nvram data register. Subsequent
    calls to read/write nvram data will fail.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d4bc3927d284784b3f0bff05b4eed2242cc3e226
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:59:20 2005 -0700

    [TG3]: Add interrupt test
    
    This test uses the previously added tg3_test_interrupt() to perform the
    test.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c76949a6826fc11efcd6bb1abdca1ae02761071d
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:58:59 2005 -0700

    [TG3]: Add loopback test
    
    The test will loopback one packet in MAC loopback mode and verify the
    packet data.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7942e1dbd7252b480ed238096dca617189d293df
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:58:36 2005 -0700

    [TG3]: Add memory test
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a71116d1f3b85a69fe3a3acec9223fefb4b1fc66
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:58:11 2005 -0700

    [TG3]: Add register test
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 944d980ecaabe44616a9e2d50101ce774f517bb6
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:57:48 2005 -0700

    [TG3]: Add parameter to tg3_halt
    
    Add a reset kind parameter to tg3_halt() so that the RESET_KIND_SUSPEND
    parameter can be passed to tg3_halt() before doing offline tests.
    
    All other calls to tg3_halt() will use the RESET_KIND_SHUTDOWN
    parameter.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ca43007a92662621e5819912fc31c346e3a2eed8
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:57:23 2005 -0700

    [TG3]: Add link test
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 566f86adb336637d03900f53b886d879aa5f5d56
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:56:58 2005 -0700

    [TG3]: Add nvram test
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4cafd3f533475c976879d85773735c004f09f576
Author: Michael Chan <mchan@broadcom.com>
Date:   Sun May 29 14:56:34 2005 -0700

    [TG3]: Add basic selftest infrastructure
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d1faeaeb95a05275cf0c5b51b88f2fa833434625
Author: David S. Miller <davem@davemloft.net>
Date:   Mon May 23 14:00:44 2005 -0700

    [TG3]: Update driver version.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ded7340d9d9142807a1ef94ab9c51d13ab76a1c9
Author: David S. Miller <davem@davemloft.net>
Date:   Mon May 23 13:59:47 2005 -0700

    [TG3]: Increase TEST_BUFFER_SIZE to 8K.
    
    This makes the DMA bug workaround test more likely
    to find the problem on some systems.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 413f5431a5a27e44c6610de640e507e1e3c885f4
Author: David S. Miller <davem@davemloft.net>
Date:   Mon May 23 13:13:15 2005 -0700

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d8659255c599ba497bcfb8b4abc187d9e0951d99
Author: Xose Vazquez Perez <xose.vazquez@gmail.com>
Date:   Mon May 23 12:54:51 2005 -0700

    [TG3]: Add 5752M device ID.
    
    Add 0x1601 as 5752M, it's a 5752 but for mobile PCs.
    Stolen from Broadcom bcm5700-8.1.55 driver.
    
    Someone forgot to add it to tg3 ;-)
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f7383c22246cfccbe912541dd83103009ed2b537
Author: David S. Miller <davem@davemloft.net>
Date:   Wed May 18 22:50:53 2005 -0700

    [TG3]: In tg3_poll(), resample status_tag after doing work.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 59e6b4343299373bc10dd131ab5142f53ddd838a
Author: David S. Miller <davem@davemloft.net>
Date:   Wed May 18 22:50:10 2005 -0700

    [TG3]: Refine DMA boundary setting.
    
    Extract DMA boundary bit selection into a seperate
    function, tg3_calc_dma_bndry().  Call this from
    tg3_test_dma().
    
    Make DMA test more reliable by using no DMA boundry
    setting during the test.  If the test passes, then
    use the setting we selected before the test.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Michael Chan <mchan@broadcom.com>

commit 15f9850d3c2d46f5851a424d2990a18b5bb5ebfd
Author: David S. Miller <davem@davemloft.net>
Date:   Wed May 18 22:49:26 2005 -0700

    [TG3]: Set minimal hw interrupt mitigation.
    
    Even though we do software interrupt mitigation
    via NAPI, it still helps to have some minimal
    hw assisted mitigation.
    
    This helps, particularly, on systems where register
    I/O overhead is much greater than the CPU horsepower.
    
    For example, it helps on NUMA systems.  In such cases
    the PIO overhead to disable interrupts for NAPI accounts
    for the majority of the packet processing cost.  The
    CPU is fast enough such that only a single packet is
    processed by each NAPI poll call.
    
    Thanks to Michael Chan for reviewing this patch.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fac9b83ea79aa3112ed245d9a4fc2a5c3ec2b7ec
Author: David S. Miller <davem@davemloft.net>
Date:   Wed May 18 22:46:34 2005 -0700

    [TG3]: Add tagged status support.
    
    When supported, use the TAGGED interrupt processing support
    the chip provides.  In this mode, instead of a "on/off" binary
    semaphore, an incrementing tag scheme is used to ACK interrupts.
    
    All MSI supporting chips support TAGGED mode, so the tg3_msi()
    interrupt handler uses it unconditionally.  This invariant is
    verified when MSI support is tested.
    
    Since we can invoke tg3_poll() multiple times per interrupt under
    high packet load, we fetch a new copy of the tag value in the
    status block right before we actually do the work.
    
    Also, because the tagged status tells the chip exactly which
    work we have processed, we can make two optimizations:
    
    1) tg3_restart_ints() need not check tg3_has_work()
    2) the tg3_timer() need not poke the chip 10 times per
       second to keep from losing interrupt events
    
    Based upon valuable feedback from Michael Chan <mchan@broadcom.com>
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b6d31e80f0d6a722bf85b3a7090df473fc545980
Author: David S. Miller <davem@davemloft.net>
Date:   Thu May 5 14:46:21 2005 -0700

    [TG3]: Update driver version and reldate.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e6de8ad1fae8385eca4bf288e7a6ea2664ce0458
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu May 5 14:42:41 2005 -0700

    [TG3]: Ignore tg3_stop_block() errors.
    
    tg3_stop_block() errors can be safely ignored since tg3_chip_reset()
    always follows tg3_stop_block() calls.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b3b7d6be54f919556148946adb4ece91820ad210
Author: David S. Miller <davem@davemloft.net>
Date:   Thu May 5 14:40:20 2005 -0700

    [TG3]: Elide tg3_stop_block messages when such events are normal.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f4d0ee983ec01e59a77e157ab702246f397b2a2b
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Thu Apr 28 11:33:20 2005 -0700

    [TG3]: Set SA_SAMPLE_RANDOM in request_irq() calls.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 04237dddd14375fce1df4bfb1be92a35aa1c247f
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Apr 25 15:17:17 2005 -0700

    [TG3]: Fix tg3_restart_ints()
    
    tg3_restart_ints() is called to re-enable interrupts after tg3_poll()
    has finished all the work. It calls tg3_cond_int() to force an interrupt
    if the status block updated bit is set. The updated bit will be set if
    there is a new status block update sometime during tg3_poll() and it can
    be very often. The worst part is that even if all the work has been
    processed, the updated bit remains set and an interrupt will be forced
    unnecessarily.
    
    The fix is to call tg3_has_work() instead to determine if new work is
    posted before forcing an interrupt. The way to force an interrupt is
    also changed to use "coalesce_now" instead of "SETINT". The former is
    generally a safer way to force the interrupt.
    
    Also deleted the first parameter to tg3_has_work() which is unused.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 52f6d697dc0f2c039e8413e780b0f45ddf8161fc
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Apr 25 15:14:32 2005 -0700

    [TG3]: Refresh hw index in tg3_rx()
    
    This patch refreshes the hw rx producer in tg3_rx() so that additional
    work posted by the hardware can be processed.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 483ba50bd41d14d5325d6cd9935de86a982d08a2
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Apr 25 15:14:03 2005 -0700

    [TG3]: Fix bug in tg3_rx()
    
    This patch fixes a bug that causes tg3_has_work() to always return 1.
    
    rx work is determined by comparing tp->rx_rcb_ptr with the current hw
    producer index. The hw producer index is modulo the ring size, but tp-
    >rx_rcb_ptr is a free running counter that goes up beyond the ring size.
    After the ring wraps around once, tg3_has_work() will always return 1.
    
    The fix is to always do modulo arithmetic on tp->rx_rcb_ptr.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ac6910e189471e6b46ecea59e7620b083329ad4f
Author: David S. Miller <davem@davemloft.net>
Date:   Sun Apr 24 20:06:16 2005 -0700

    [TG3]: Update driver version and release date.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7938109fff944e0117976a39946d99d2b0b0250d
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:13:59 2005 -0700

    [TG3]: Add msi test
    
    Add MSI test for chips that support MSI. If MSI test fails, it will
    switch back to INTx mode and will print a message asking the user to
    report the failure.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 88b06bc26b87cf0490b0e3faea7fefc7549dd75d
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:13:25 2005 -0700

    [TG3]: Add msi support
    
    Add MSI support for 5751 C0 and 5752.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1c8594b48b00a98d12477355e944e165a5f64cd5
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:12:46 2005 -0700

    [TG3]: Fix bug in tg3_set_eeprom()
    
    Fix a bug in tg3_set_eeprom() when the length is less than 4 and the
    offset is not 4-byte aligned.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e6af301be3c129adbc8a7c8ffb76e62533ad9575
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:12:05 2005 -0700

    [TG3]: Add nvram lock-out support for 5752 TPM
    
    Add support for the NVRAM lock-out feature for TPM in 5752. If lock-out
    is enabled, certain NVRAM registers cannot be written to.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 361b4ac29bc651c7612d4bf21434ae6fe06b78e4
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:11:21 2005 -0700

    [TG3]: Add nvram detection for 5752
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3e7d83bc96d59013792e5546e7832668d3adbce7
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:10:36 2005 -0700

    [TG3]: Add GPIO3 for 5752
    
    Add bit definitions for the new GPIO3 in 5752. GPIO3 must be driven as
    output when it is unused.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ff645bec523819fa4d28d7e0de7d998e3edb0c57
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:09:53 2005 -0700

    [TG3]: Workaround 5752 A0 chip ID
    
    The 5752 A0 chip ID is wrong in hardware. The simplest way to workaround
    it is to change it to the correct value in tp->pci_chip_rev_id. This
    way, it is easier to check for the ASIC_REV_5752 in the rest of the
    driver.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8c6bda1a89c148f3a28edc09a76dac9bff57d8ee
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:09:08 2005 -0700

    [TG3]: Fix tg3_set_power_state()
    
    Fix tg3_set_power_state to drive GPIOs properly based on the
    TG3_FLAG_EEPROM_WRITE_PROTECT flag. Some delays are also added after D0
    and D3 power state changes.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 314fba348e1f64a30b53d3cff5d96872424e8498
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:07:04 2005 -0700

    [TG3]: Setup proper GPIO settings
    
    Setup proper GPIO settings in tp->grc_local_ctrl before calling
    tg3_set_power() state in tg3_get_invariants() and after chip reset.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7d0c41ef89dad9008edf1c3c0022721ebad39999
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:06:20 2005 -0700

    [TG3]: Split tg3_phy_probe into 2 functions
    
    Split the 1st half of tg3_phy_probe() into tg3_get_eeprom_hw_cfg() so
    that the TG3_FLAG_EEPROM_WRITE_PROT can be determined before calling
    tg3_set_power_state() in tg3_get_invariants(). This will allow
    tg3_set_power_state() to drive the GPIOs correctly based on the config.
    information in eeprom.
    
    On the 5752, there are no pull-up resistors on the GPIO pins and it is
    necessary to drive the unused GPIOs as output.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 85e94cedc44d1c2c1663b5b18f703ca5e7316e59
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Apr 21 17:05:28 2005 -0700

    [TG3]: Minor 5752 fixes
    
    Some minor 5752 fixes mostly for correctness and add 5752 PHY ID.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 053d78000be4906fac6446ad517ca3897dc6cd84
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 17:03:52 2005 -0700

    [TG3]: add support for bcm5752 rev a1
    
    Replace existing ASIC_REV_5752 definition with ASIC_REV_5752_A0,
    and add definition for ASIC_REV_5752_A1. Then, add ASIC_REV_5752_A1
    to check for setting TG3_FLG2_5750_PLUS in tg3_get_invariants.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1b440c568e28186956ef765c69ab124401088663
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 17:03:18 2005 -0700

    [TG3]: check TG3_FLG2_5750_PLUS flag to set TG3_FLG2_5705_PLUS flag
    
    Use check of TG3_FLG2_5750_PLUS in tg3_get_invariants to set
    TG3_FLG2_5705_PLUS flag.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bb7064dc09ff90015ddc7d818dd8fefb8ca5b936
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 17:02:41 2005 -0700

    [TG3]: use TG3_FLG2_57{05,50}_PLUS flags in tg3_get_invariants
    
    Rewrite checks in tg3_get_invariants to use TG3_FLG2_5705_PLUS and
    TG3_FLG2_5750_PLUS flags.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 863925f59e5425e4af6996b9c50857c766940176
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 17:02:04 2005 -0700

    [TG3]: more use of TG3_FLG2_5705_PLUS flag
    
    Rewrite of a couple of troublesome multi-way if statements to use
    TG3_FLG2_5705_PLUS flag.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cbf46853c8db75f98bd005dc545aca0703063d4b
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 17:01:29 2005 -0700

    [TG3]: use new TG3_FLG2_5750_PLUS flag
    
    Replace a number of two-way if statements checking for 5750, and/or
    5752 to reference the newly-defined TG3_FLG2_5750_PLUS flag instead.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6708e5cc103ba045fca035b4d8df236ca31fb8bc
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 17:00:52 2005 -0700

    [TG3]: define TG3_FLG2_5750_PLUS flag
    
    Define TG3_FLG2_5750_PLUS flag and set it in tg3_get_invariants for
    ASIC_REV_5750 or ASIC_REV_5752.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fcf026936c613fc6ca4685677a461100d87eec81
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 17:00:02 2005 -0700

    [TG3]: use TG3_FLG2_5705_PLUS instead of multi-way if's
    
    Replace a number of three-way if statements checking for 5705, 5750,
    and 5752 to reference the equivalent TG3_FLG2_5705_PLUS flag instead.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6e9017a7d9b949aea638eeba67d34affaa145f14
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 16:58:56 2005 -0700

    [TG3]: add bcm5752 entry to pci_ids.h
    
    Add proper entry for bcm5752 PCI ID to pci_ids.h, and use it in tg3.
    I did this separately in case patches like this (i.e. new PCI IDs)
    need to come from more "official" sources.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit af2bcd97b570f39da94103f80f67433dab515049
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 16:57:50 2005 -0700

    [TG3]: add bcm5752 to tg3_pci_tbl
    
    Add hard-coded definition of bcm5752 PCI ID to tg3_pci_tbl.
    Next patch will change entry to use pci_ids.h-based definition.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2052da946096590035438626afbc7f329d2549d8
Author: John W. Linville <linville@tuxdriver.com>
Date:   Thu Apr 21 16:56:08 2005 -0700

    [TG3]: add basic bcm5752 support
    
    Add ASIC_REV_5752 definition.
    
    Track-down all references to ASIC_REV_5750 and mirror them with
    references to the newly defined ASIC_REV_5752.
    
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Author: Linus Torvalds <torvalds@ppc970.osdl.org>
Date:   Sat Apr 16 15:20:36 2005 -0700

    Linux-2.6.12-rc2
    
    Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.
    
    Let it rip!
