commit b86fb2cfe82fc4a555f0841f5f8ca4db303ed092
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:57 2011 +0000

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

commit d7f2ab20432441c7d4e41cd1745aafc17d712672
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:56 2011 +0000

    tg3: Fix eee preprocessor naming
    
    This patch fixes a preprocessor naming bug for one of the EEE registers.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 21a00ab270f95d32e502d92f166dd75c518d3c5f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:55 2011 +0000

    tg3: Fix EEE interoperability issue
    
    This patch fixes a problem where EEE will fail to work in certain
    environments.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ab78904608bd6e421b81420e4d2f7d5bae9d4660
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:54 2011 +0000

    tg3: Disable EEE during loopback tests
    
    EEE interferes with the hardware's ability to loop a packet back to the
    host.  This patch disables the feature for the duration of the test.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit aba49f2421d5287692aee961ab4ce2981fdf4939
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:53 2011 +0000

    tg3: Disable MAC loopback test for CPMU devices
    
    On CPMU devices, the MAC loopback test does not test any important paths
    the phy loopback test doesn't also test.  The phy loopback test is the
    more comprehensive test.  This patch disables the MAC loopback test for
    these devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 49692ca1e686970bac5726c3fd925427bb3ae89d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:52 2011 +0000

    tg3: Fix loopback tests
    
    The half-duplex bit in the MAC MODE register will be set during the
    loopback test if the external link is in half-duplex mode.  This will
    cause the loopback test to fail on newer devices.  This patch turns the
    half-duplex bit off for the test.
    
    Also, newer devices fail the internal phy loopback test because the phy
    link takes a little while to come up.  This patch adds code to wait for
    the link before proceeding with the test.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f746a3136a61ae535c5d0b49a9418fa21edc61b5
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:51 2011 +0000

    tg3: Restrict phy ioctl access
    
    If management firmware is present and the device is down, the firmware
    will assume control of the phy.  If a phy access were allowed from the
    host, it will collide with firmware phy accesses, resulting in
    unpredictable behavior.  This patch fixes the problem by disallowing phy
    accesses during the problematic condition.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0583d52114b19ea06d03dd2cf762a7737c265400
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:50 2011 +0000

    tg3: Disable multivec mode for 1 MSIX vector
    
    For single vector MSI-X allocations, we do not want to enable
    multivector modes.  This patch makes the necessary corrections.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bf933c802763b2beb1a1d4977f00af1a78c4fb70
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:49 2011 +0000

    tg3: Use new VLAN code
    
    This patch pivots the tg3 driver to the new VLAN infrastructure.
    All references to vlgrp have been removed.  The driver still attempts to
    disable VLAN tag stripping if CONFIG_VLAN_8021Q or
    CONFIG_VLAN_8021Q_MODULE is not defined.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4d163b75e979833979cc401ae433cb1d7743d57e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:48 2011 +0000

    tg3: Fix 5719 A0 tx completion bug
    
    The 5719 A0 has a bug that manifests itself as if the chipset were
    reordering memory writes.  The best known way to solve this problem is
    to turn off LSO and jumbo frames.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b4495ed88b782febddfa5bb99c87d75724520ecf
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 25 15:58:47 2011 +0000

    tg3: Revise 5719 internal FIFO overflow solution
    
    Commit cf79003d598b1f82a4caa0564107283b4f560e14, entitled
    "tg3: Fix 5719 internal FIFO overflow problem", proposed a way to solve
    an internal FIFO overflow problem.  We have since discovered a slightly
    better way to solve the problem.  This patch changes the code so that
    the problem is contained closer to the problem source.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a
Merge: 7b26e5e 9fc3bbb
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Jan 4 11:57:25 2011 -0800

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

commit aa6027cacdd912ce884953714fcc7392b6155bc6
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Sat Jan 1 05:22:46 2011 +0000

    tg3: fix warnings
    
    In case CONFIG_PM_SLEEP is disabled, we dont need tg3_suspend() and
    tg3_resume().
    
    drivers/net/tg3.c:15056: warning: ‘tg3_suspend’ defined but not used
    drivers/net/tg3.c:15110: warning: ‘tg3_resume’ defined but not used
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: Rafael J. Wysocki <rjw@sisk.pl>
    Cc: Michael Chan <mchan@broadcom.com>
    Cc: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 824f5f38d3005c346a043dedcfe8b048b699b81a
Author: David Sterba <dsterba@suse.cz>
Date:   Wed Dec 29 03:40:31 2010 +0000

    tg3: fix return value check in tg3_read_vpd()
    
    Besides -ETIMEDOUT and -EINTR, pci_read_vpd may return other error
    values like -ENODEV or -EINVAL which are ignored due to the buggy
    check, but the data are not read from VPD anyway and this is checked
    subsequently with at most 3 needless loop iterations. This does not
    show up as a runtime bug.
    
    CC: Matt Carlson <mcarlson@broadcom.com>
    CC: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David Sterba <dsterba@suse.cz>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c866b7eac073198cef03ea6bac2dc978635a9f5c
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Sat Dec 25 12:56:23 2010 +0000

    tg3: Do not use legacy PCI power management
    
    The tg3 driver uses the legacy PCI power management, so it has to do
    some PCI-specific things in its ->suspend() and ->resume() callbacks,
    which isn't necessary and should better be done by the PCI
    sybsystem-level power management code.
    
    Convert tg3 to the new PCI power management framework and make it
    let the PCI subsystem take care of all the PCI-specific aspects of
    device handling during system power transitions.
    
    Tested on HP nx6325 with a NetXtreme BCM5788 adapter.
    
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 895950c2a6565d9eefda4a38b00fa28537e39fcb
Author: Joe Perches <joe@perches.com>
Date:   Tue Dec 21 02:16:08 2010 -0800

    tg3: Use DEFINE_PCI_DEVICE_TABLE
    
    Moves the PCI tables to the right read-only section.
    
    Signed-off-by: Joe Perches <joe@perches.com>

commit 23f333a2bfafba80339315b724808982a9de57d9
Author: Tejun Heo <tj@kernel.org>
Date:   Sun Dec 12 16:45:14 2010 +0100

    drivers/net: don't use flush_scheduled_work()
    
    flush_scheduled_work() is on its way out.  This patch contains simple
    conversions to replace flush_scheduled_work() usage with direct
    cancels and flushes.
    
    Directly cancel the used works on driver detach and flush them in
    other cases.
    
    The conversions are mostly straight forward and the only dangers are,
    
    * Forgetting to cancel/flush one or more used works.
    
    * Cancelling when a work should be flushed (ie. the work must be
      executed once scheduled whether the driver is detaching or not).
    
    I've gone over the changes multiple times but it would be much
    appreciated if you can review with the above points in mind.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Jay Cliburn <jcliburn@gmail.com>
    Cc: Michael Chan <mchan@broadcom.com>
    Cc: Divy Le Ray <divy@chelsio.com>
    Cc: e1000-devel@lists.sourceforge.net
    Cc: Vasanthy Kolluri <vkolluri@cisco.com>
    Cc: Samuel Ortiz <samuel@sortiz.org>
    Cc: Lennert Buytenhek <buytenh@wantstofly.org>
    Cc: Andrew Gallatin <gallatin@myri.com>
    Cc: Francois Romieu <romieu@fr.zoreil.com>
    Cc: Ramkrishna Vepa <ramkrishna.vepa@exar.com>
    Cc: Matt Carlson <mcarlson@broadcom.com>
    Cc: David Brownell <dbrownell@users.sourceforge.net>
    Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
    Cc: netdev@vger.kernel.org

commit 5ee493767352314893520ac40aec5bb07d0147e0
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Dec 6 08:28:54 2010 +0000

    tg3: Update version to 3.116
    
    This patch updates the tg3 version to 3.116.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a386b9011a4687470e6168e2f2a08c468f25f72f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Dec 6 08:28:53 2010 +0000

    tg3: Relax EEE thresholds
    
    The hardware defaults to fairly aggressive EEE thresholds.  While there
    appear to be no ill effects, this patch relaxes them, just as a
    precaution.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a6b68dab169e2a51e59f43504f1279cbc2afcde8
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Dec 6 08:28:52 2010 +0000

    tg3: Minor EEE code tweaks
    
    The first hunk of this patch makes sure that the driver checks for the
    appropriate preconditions before checking if EEE negotiation succeeded.
    More specifically the link needs to be full duplex for EEE to be
    enabled.
    
    The second and third hunks of this patch fix a bug where the eee
    advertisement register would be programmed with extra bits set.
    
    The fourth hunk of this patch makes sure the EEE capability flag is not
    set for 5718 A0 devices and that the device is not a serdes device.
    
    None of these modifications are strictly necessary.  The driver /
    hardware still does the right thing.  They are submitted primarily for
    correctness.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 699c019385fcb13498a5a3a8bd368f04f1d4a223
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Dec 6 08:28:51 2010 +0000

    tg3: Fix 57765 EEE support
    
    EEE support in the 57765 internal phy will not enable after a phy reset
    unless it sees that EEE is supported in the MAC.  This patch moves the
    code that programs the CPMU EEE registers to a place before the phy
    reset.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3110f5f5545a645c50ef66b1f705d08dfd1df404
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Dec 6 08:28:50 2010 +0000

    tg3: Move EEE definitions into mdio.h
    
    In commit 52b02d04c801fff51ca49ad033210846d1713253 entitled "tg3: Add
    EEE support", Ben Hutchings had commented that the EEE advertisement
    register will be in a standard location.  This patch moves that
    definition into mdio.h and changes the code to use it.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8fc2f9956127d2b85280c07e69aeb08b9bd85150
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Dec 6 08:28:49 2010 +0000

    tg3: Raise the jumbo frame BD flag threshold
    
    The current transmit routines set the jumbo frame BD flag too
    aggressively.  This can reduce performance for common cases.  This patch
    raises the jumbo flag threshold to 1518, up from 1500.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2e1e3291d4727e14c8f0f48df561afb1a5c26ffe
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:53 2010 +0000

    tg3: Enable phy APD for 5717 and later asic revs
    
    This patch enables the gphy autopowerdown feature in the phy for all
    new devices that support it.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4bae65c892b4ff9a2797cbfa8526a5f9aaf1b2ed
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:52 2010 +0000

    tg3: use dma_alloc_coherent() instead of pci_alloc_consistent()
    
    Using dma_alloc_coherent() permits to use GFP_KERNEL allocations instead
    of GFP_ATOMIC ones. Its better when a machine is out of memory, because
    this allows driver to sleep to get its memory and succeed its init,
    especially when allocating high order pages.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b92b9040f6e4997b895b7b9c655a158354d28964
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:51 2010 +0000

    tg3: Reenable TSS for 5719
    
    All TSS bugs have been fixed in the 5719.  This patch reenables the
    feature.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit deabaac8beeccdfee5358c0cd4c63258f28f3a74
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:50 2010 +0000

    tg3: Enable mult rd DMA engine on 5719
    
    The multiple DMA read engine bugs have been fixed on the 5719.  This
    patch reenables support for this feature.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cf79003d598b1f82a4caa0564107283b4f560e14
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:48 2010 +0000

    tg3: Fix 5719 internal FIFO overflow problem
    
    Under load, there an internal FIFO can overflow on the 5719.  The fix is
    to scale back the PCIe maximum read request size based on the current
    link speed and width.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d2394e6bb1aa636f3bd142cb6f7845a4332514b5
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:47 2010 +0000

    tg3: Always turn on APE features in mac_mode reg
    
    The APE needs certain bits in the mac_mode register to be enabled for
    traffic to flow correctly.  This patch changes the code to always enable
    these bits in the presence of the APE.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b75cc0e4c1caac63941d96a73b2214e8007b934b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:46 2010 +0000

    tg3: Assign correct tx margin for 5719
    
    Commit d309a46e42542223946d3a9e4e239fdc945cb53e, entitled
    "tg3: 5719: Prevent tx data corruption", was supposed to contain the tx
    margin adjustment but it looks like it somehow was omitted.  This patch
    fixes the problem.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5093eedc8bdfd7d906836a44a248f66a99e27d22
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Nov 24 08:31:45 2010 +0000

    tg3: Apply 10Mbps fix to all 57765 revisions
    
    Commit a977dbe8445b8a81d6127c4aa9112a2c29a1a008, entitled
    "tg3: Reduce 57765 core clock when link at 10Mbps" needs to be applied
    to all revisions of the 57765 asic rev, not just the A0 revision.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f2dc0d1809ab7e0147c7e4ac837be1682f706538
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Mon Oct 25 13:01:55 2010 +0000

    tg3: Do not call device_set_wakeup_enable() under spin_lock_bh
    
    The tg3 driver calls device_set_wakeup_enable() under spin_lock_bh,
    which causes a problem to happen after the recent core power
    management changes, because this function can sleep now.  Fix this
    by moving the device_set_wakeup_enable() call out of the
    spin_lock_bh-protected area.
    
    Reported-by: Maxim Levitsky <maximlevitsky@gmail.com>
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2198a10b501fd4443430cb17e065a9e859cc58c9
Merge: 9941fb6 db5a753
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Oct 21 08:43:05 2010 -0700

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
    
    Conflicts:
    	net/core/dev.c

commit eab6d18d20fc5b5ba04a7e7fcd6f357197870e51
Author: Jesse Gross <jesse@nicira.com>
Date:   Wed Oct 20 13:56:03 2010 +0000

    vlan: Don't check for vlan group before vlan_tx_tag_present.
    
    Many (but not all) drivers check to see whether there is a vlan
    group configured before using a tag stored in the skb.  There's
    not much point in this check since it just throws away data that
    should only be present in the expected circumstances.  However,
    it will soon be legal and expected to get a vlan tag when no
    vlan group is configured, so remove this check from all drivers
    to avoid dropping the tags.
    
    Signed-off-by: Jesse Gross <jesse@nicira.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7c1a96a9966efc2eb33d1021569c5ef6ae6f5ecb
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:45 2010 +0000

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

commit 64c2218266996b562a8e940a95a887fc432daced
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:44 2010 +0000

    tg3: Report invalid link from tg3_get_settings()
    
    Currently the tg3 driver leaves the speed and duplex fields
    uninitialized in tg3_get_settings() if the device is not up.  This can
    lead to some strange deductions in certain versions of ethtool.  When
    the device is up and the link is down, the driver reports SPEED_INVALID
    and DUPLEX_INVALID for these fields.  This patch makes the presentation
    consistent by returning SPEED_INVALID and DUPLEX_INVALID when the device
    has not been brought up as well.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4803572815feea2dca9485a343a8556c9037e36e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:43 2010 +0000

    tg3: Don't allocate jumbo ring for 5780 class devs
    
    The 5714, 5715, and 5780 devices do not have a separate rx jumbo
    producer ring.  This patch changes the code so that resources are not
    allocated for it.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f94e290eba2f98e8f759d273d9d04e8487fb4b6b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:42 2010 +0000

    tg3: Cleanup tg3_alloc_rx_skb()
    
    src_map is no longer used in tg3_alloc_rx_skb().  Remove it.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 52b02d04c801fff51ca49ad033210846d1713253
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:41 2010 +0000

    tg3: Add EEE support
    
    This patch adds Energy Efficient Ethernet (EEE) support for the 5718
    device ID and the 57765 B0 asic revision.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ddfc87bfd16f370904c6ff7d23738335dd68d0ce
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:40 2010 +0000

    tg3: Add clause 45 register accessor methods
    
    This patch adds clause 45 register access methods.  They will be used in
    the following patch.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3d37728bc55994fdf2888f6c872bdeea03a84cc2
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:39 2010 +0000

    tg3: Disable unused transmit rings
    
    This patch allows the driver to disable the additional transmit rings
    available on the 5717 and 5719 devices.  This is not strictly necessary,
    but is done anyways for correctness.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bba226acf4d13586ce47cf8376db33bed7bc0bd6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Oct 14 10:37:38 2010 +0000

    tg3: Add support for selfboot format 1 v6
    
    5718 B0 and 5719 devices will use a new selfboot firmware format.  This
    patch adds code to detect the new format so that bootcode versions get
    reported correctly.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b0057c51db66c5f0f38059f242c57d61c4741d89
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Sun Oct 10 19:55:52 2010 +0000

    tg3: restore rx_dropped accounting
    
    commit 511d22247be7 (tg3: 64 bit stats on all arches), overlooked the
    rx_dropped accounting.
    
    We use a full "struct rtnl_link_stats64" to hold rx_dropped value, but
    forgot to report it in tg3_get_stats64().
    
    Use an "unsigned long" instead to shrink "struct tg3" by 176 bytes, and
    report this value to stats readers.
    
    Increment rx_dropped counter for oversized frames.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    CC: Michael Chan <mchan@broadcom.com>
    CC: Matt Carlson <mcarlson@broadcom.com>
    Acked-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2259dca36a2f0226596ea37132a46338fcff6722
Author: Nicolas Kaiser <nikai@nikai.net>
Date:   Thu Oct 7 23:29:27 2010 +0000

    net/tg3: simplify conditional
    
    Simplify: ((a && !b) || (!a && b)) => (a != b)
    
    Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 85407885d5d8e9eed9be8e4d33c519646b90d09f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Oct 6 13:40:58 2010 -0700

    [PATCH net-next] tg3: Set real_num_rx_queues for non-multiq devs
    
    Commit 2ddaad397c47de012dfb956b0c05540da1a0dde5 entitled "tg3: Use
    netif_set_real_num_{rx,tx}_queues()" added a new call to
    netif_set_real_num_rx_queues in tg3_enable_msix().  This call also needs
    to be added to the legacy path to correctly reflect the actual number of
    rx queues.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c7ebfdaca0b89fe9d846e93b249303313612d0e3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:37 2010 +0000

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

commit 7cb32cf23c63a371cf89bfaad3f911a1609241cc
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:36 2010 +0000

    tg3: Add extend rx ring sizes for 5717 and 5719
    
    This patch increases the rx ring sizes for those asic revs that support
    them.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2c49a44df33e22e1f48bd8d51781e7f38d55d002
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:35 2010 +0000

    tg3: Prepare for larger rx ring sizes
    
    This patch adds two new variables to track the size of the standard and
    jumbo rx producer ring sizes.  The code is then pivoted to these
    variables from preprocessor constants.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1da85aa3db6878639e407548dad5b2404443e2c5
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:34 2010 +0000

    tg3: Futureproof the loopback test
    
    There are other multiqueue modes 5717 and 5719 devices can assume.  This
    patch makes sure that the loopback test is safe, should those other
    modes be enabled in the future.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 37a949c54857d8b2a38dbdc75bc8666c3292cbc4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:33 2010 +0000

    tg3: Cleanup missing VPD partno section
    
    This patch cleans up the default VPD partno section.  New entries for
    5717 asic rev devices were also added.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f51a8903f14512f5ce61a74657db7f84f16b2717
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:32 2010 +0000

    tg3: Remove 5724 device ID
    
    This product was never released to the public.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d309a46e42542223946d3a9e4e239fdc945cb53e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:31 2010 +0000

    tg3: 5719: Prevent tx data corruption
    
    This patch enables a bit that prevents read DMA overflows and adjusts
    the txmbuf margin from the hardware default.  The combination of these
    modifications prevents a tx data corruption issue we were seeing on the
    5719.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 66cfd1bd05a7a1c31c9cdbb2ddf5c57d1cddc5f6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Sep 30 10:34:30 2010 +0000

    tg3: Fix potential netpoll crash
    
    Up until now the tg3 driver would call netif_napi_add() for the maximum
    number of NAPI instances the driver could use.  The problem is that
    netpoll could call tg3_poll() on instances that are not active.  The net
    effect is that the driver will crash attempting to dereference
    uninitialized pointers.
    
    The fix is to only allocate as many NAPI instances as the driver would
    use in tg3_open() and deleted them in tg3_close().
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2ddaad397c47de012dfb956b0c05540da1a0dde5
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Mon Sep 27 22:11:51 2010 -0700

    tg3: Use netif_set_real_num_{rx,tx}_queues()
    
    Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 807540baae406c84dcb9c1c8ef07a56d2d2ae84a
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Thu Sep 23 05:40:09 2010 +0000

    drivers/net: return operator cleanup
    
    Change "return (EXPR);" to "return EXPR;"
    
    return is not a function, parentheses are not required.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f833c4c181e4e948758b7b252322f50273100d30
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 09:00:01 2010 +0000

    tg3: phy tmp variable roundup
    
    The tg3's phy routines define temporary variables in many locations
    within the same routine.  This patch unifies all temporary variables
    into one location.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a4a8bb15aed20ff74aa3ca14a4f2c0d62efd8391
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 09:00:00 2010 +0000

    tg3: Dynamically allocate VPD data memory
    
    This patch eases stack pressure by dynamically allocating the memory
    used to temporarily store VPD data.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 02e96080af2b70313f2ffc8c1b03ae2f9d8c65ac
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 08:59:59 2010 +0000

    tg3: Use skb_is_gso_v6()
    
    This patch converts the driver to prefer the skb_is_gso_v6() helper over
    the explicit inlined version.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8fea32b9555726d35b91492d17fc21c7874d36f9
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 08:59:58 2010 +0000

    tg3: Move producer ring struct to tg3_napi
    
    Now that each NAPI instance has its own producer ring, it no longer
    makes sense to keep the producer ring structure external.  This patch
    migrates the producer ring struct to tg3_napi and pivots the code to the
    new implementation.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6fd45cb814709767a1704b541aa91647b7f275cf
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 08:59:57 2010 +0000

    tg3: Clarify semantics of TG3_IRQ_MAX_VECS
    
    TG3_IRQ_MAX_VECS should be seen as the maximum number of vectors that
    any device could be expected to use.  tp->irq_max represents the maximum
    number of vectors the current device can use.  This patch clarifies the
    semantics of the code to match the above description.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2e9f7a7408d264f01d4477c564ef5c6b610cd10f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 08:59:56 2010 +0000

    tg3: Unlock 5717 B0+ support
    
    This patch adjusts the driver to use the tg3_start_xmit_dma_bug()
    transmit routine for all revisions of 5717 asic rev devices and then
    allows the driver to attach to B0 and later devices.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit dc6d074457f1551f9357f773a4eda09a3d5ef150
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 08:59:55 2010 +0000

    tg3: Don't send APE events for NCSI firmware
    
    NCSI firmware does not accept APE events.  It relies on a "driver state"
    location in shared memory to tell it what the driver's current state is.
    
    This patch pivots the code to use the new driver state scheme.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f0392d24485e4c144d2741a5424f069b8b5f30e7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 08:59:54 2010 +0000

    tg3: Disable TSS
    
    It was recently discovered that enabling TSS can lockup the device.
    This patch disables the feature until a suitable workaround can be
    found.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 41a8a7ee4a78216962f3afcea5968c04d0ab3b08
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Sep 15 08:59:53 2010 +0000

    tg3: Fix read DMA FIFO overruns on recent devices
    
    Earlier versions of tg3 devices had a problem where the read DMA FIFO
    could be overrun in certain edge conditions.  The fix was to limit the
    number of rx BDs the hardware would fetch at a time.  For later devices
    (5761, 5784 and later ASIC revs), there is a hardware fix that must be
    enabled to fix the same problem.  This patch adds that hardware fix.
    
    There is a gap in the ASIC revision lineage where neither fix is
    applied.  This is intentional as these ASIC revisions are not afflicted
    by the bug.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bc8acf2c8c3e43fcc192762a9f964b3e9a17748b
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Thu Sep 2 13:07:41 2010 -0700

    drivers/net: avoid some skb->ip_summed initializations
    
    fresh skbs have ip_summed set to CHECKSUM_NONE (0)
    
    We can avoid setting again skb->ip_summed to CHECKSUM_NONE in drivers.
    
    Introduce skb_checksum_none_assert() helper so that we keep this
    assertion documented in driver sources.
    
    Change most occurrences of :
    
    skb->ip_summed = CHECKSUM_NONE;
    
    by :
    
    skb_checksum_none_assert(skb);
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9ed6eda4fad9ea95e99f1e3cc546bcde049695cf
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:08 2010 +0000

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

commit f07e9af31e6e1bf2a499e1f52cbf0982619fa611
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:07 2010 +0000

    tg3: Migrate tg3_flags to phy_flags
    
    This patch moves most of the phy related flag definitions over to the
    phyflags member and changes the code accordingly.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 80096068bc21420ba4d690341a3c70c49017d167
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:06 2010 +0000

    tg3: Create phy_flags and migrate phy_is_low_power
    
    This patch deletes the link_config.phy_is_low_power flag and creates a
    new phy_flags device member to store all phy related settings.  All the
    code is converted accordingly.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f08aa1a8b8ff0738d42936c3ac8c5516848bca02
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:05 2010 +0000

    tg3: Add phy-related preprocessor constants
    
    This patch replaces some instances of hardcoded phy register values with
    preprocessor equivalents.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6ee7c0a0a5003abd4afd724f5c2f654fe7328c0a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:04 2010 +0000

    tg3: Add error reporting to tg3_phydsp_write()
    
    This patch adds error reporting to the tg3_phydsp_write() function and
    converts a few more locations to use this function over the inlined
    equivalent.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f65aac166fe10b96e64c233980a3522fc50fbecf
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:03 2010 +0000

    tg3: Improve small packet performance
    
    smp_mb() inside tg3_tx_avail() is used twice in the normal
    tg3_start_xmit() path (see illustration below).  The full memory
    barrier is only necessary during race conditions with tx completion.
    We can speed up the tx path by replacing smp_mb() in tg3_tx_avail()
    with a compiler barrier.  The compiler barrier is to force the
    compiler to fetch the tx_prod and tx_cons from memory.
    
    In the race condition between tg3_start_xmit() and tg3_tx(),
    we have the following situation:
    
    tg3_start_xmit()                       tg3_tx()
        if (!tg3_tx_avail())
            BUG();
    
        ...
    
        if (!tg3_tx_avail())
            netif_tx_stop_queue();         update_tx_index();
            smp_mb();                      smp_mb();
            if (tg3_tx_avail())            if (netif_tx_queue_stopped() &&
                netif_tx_wake_queue();         tg3_tx_avail())
    
    With smp_mb() removed from tg3_tx_avail(), we need to add smp_mb() to
    tg3_start_xmit() as shown above to properly order netif_tx_stop_queue()
    and tg3_tx_avail() to check the ring index.  If it is not strictly
    ordered, the tx queue can be stopped forever.
    
    This improves performance by about 3% with 2 ports running
    bi-directional 64-byte packets.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 67b284d476bcb3d100e946da23d6cf9acfd0465c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:02 2010 +0000

    tg3: Remove 5720, 5750, and 5750M
    
    These devices were never released to the public.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ecc796486f0a7f4958f8dc7550267570dcacb608
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:01 2010 +0000

    tg3: Detect APE firmware types
    
    This patch adds code to determine the APE firmware type and report this
    along with the firmware version.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8c69b1e702527e39c0b4fbda79d2738d186a3908
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:26:00 2010 +0000

    tg3: Restrict ASPM workaround devlist
    
    The ASPM workaround setting obtained from NVRAM only works with devices
    older than 5717.  This patch enforces the restriction.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f37500d3f66ba82888315838278d56fc27308327
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:25:59 2010 +0000

    tg3: Manage gphy power for CPMU-less devs only
    
    This patch changes the code to only manage the PCIe gphy power for
    CPMU-less devices only.  The CPMU takes over management for newer
    chips.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 88075d915b51d9a17cc7436c868013a3113a849a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:25:58 2010 +0000

    tg3: Don't access phy test ctrl reg for 5717+
    
    The phy test register location has been repurposed for 5717+ devices.
    This patch changes the code to avoid this location for these devices.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c885e824699f49bc3758a0dec760e189cd774e79
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:25:57 2010 +0000

    tg3: Create TG3_FLG3_5717_PLUS flag
    
    This patch creates a TG3_FLG3_5717_PLUS flag to collectively describe
    the set of changes in the ASIC that will apply to all future chip
    revisions.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 774ee7525ff94e597844c9f7f6a48938906df698
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:25:56 2010 +0000

    tg3: Disable TSS also during tg3_close()
    
    The TSS flag needs to be turned off during tg3_close().  If the device
    fails to allocate more than one MSI-X vector the next time the device is
    brought up, transmits will fail.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6de34cb963a934953fdd365937b4b75959256602
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 2 11:25:55 2010 +0000

    tg3: Add 5784 ASIC rev to earlier PCIe MPS fix
    
    tg3 commit e7126997342560533317d8467e8516119ebcbd21 entitled
    "tg3: Preserve PCIe MPS setting for new devs" attempted to ensure the
    PCIe link negotiated Maximum Payload Size (MPS) setting was 128 bytes
    for all devices that didn't support higher speeds.  The 5784 device was
    mistakenly added to this list when it shouldn't have.  This patch
    removes the 5784 ASIC rev devices from that list.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 28b041139e344ecd0f144d6205b004ae354cfa1e
Author: Richard Cochran <richardcochran@gmail.com>
Date:   Sat Jul 17 08:48:55 2010 +0000

    net: preserve ifreq parameter when calling generic phy_mii_ioctl().
    
    The phy_mii_ioctl() function unnecessarily throws away the original ifreq.
    We need access to the ifreq in order to support PHYs that can perform
    hardware time stamping.
    
    Two maverick drivers filter the ioctl commands passed to phy_mii_ioctl().
    This is unnecessary since phylib will check the command in any case.
    
    Signed-off-by: Richard Cochran <richard.cochran@omicron.at>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 98e32a9ceea8e3a0cd6ea89c9ce8e09a74b03b78
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:47 2010 +0000

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

commit be98da6a10f3e7f855f36f3fdd67a91366cabc1c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:46 2010 +0000

    tg3: Fix some checkpatch errors
    
    This patch fixes the following checkpatch errors:
    
    ERROR: do not use assignment in if condition
    +	if ((mss = skb_shinfo(skb)->gso_size) != 0) {
    
    ERROR: do not use assignment in if condition
    +	if ((mss = skb_shinfo(skb)->gso_size) != 0) {
    
    ERROR: space prohibited after that '!' (ctx:BxW)
    +			if (! netif_carrier_ok(tp->dev) &&
     			    ^
    
    ERROR: space required after that ',' (ctx:VxV)
    +#define GET_REG32_LOOP(base,len)		\
                                ^
    
    ERROR: "(foo*)" should be "(foo *)"
    +		memcpy(data, ((char*)&val) + b_offset, b_count);
    
    ERROR: do not use assignment in if condition
    +		if ((err = tg3_do_mem_test(tp, mem_tbl[i].offset,
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 702e52ccd32164a09ea91aa5896ad7c64cb708cb
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:45 2010 +0000

    tg3: Revert PCIe tx glitch fix
    
    This patch reverts commit 52cdf8526fe24f11d300b75458ddee017f3f4c88,
    entitled "tg3: Prevent a PCIe tx glitch".  The problem does not have
    any visible side-effects and happens too early for the driver to do
    anything about it.  The proper place for this code is within the
    device's bootcode.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6867c843813a801d5f568b6fb006695316714f1b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:44 2010 +0000

    tg3: Report driver version to firmware
    
    This patch changes the code so that the driver version can be reported
    to the firmware in addition to the current use.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2138c002173abe3e439e213e5cc03b385b20508c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:43 2010 +0000

    tg3: Relax 5717 serdes restriction
    
    tg3 is coded to refuse to attach to 5717 serdes devices.  Now that the
    hardware is better supported, we can relax this restriction.  This patch
    also fixes a recently introduced bug which will cause serdes parallel
    detection not to work with 5780 class devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 34195c3dce84fd0ee47f4131584ff1f6f283b93c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:42 2010 +0000

    tg3: Fix IPv6 TSO code in tg3_start_xmit_dma_bug()
    
    The tg3_start_xmit_dma_bug() function was missing code to process IPv6
    TSO packets.  This patch adds the missing support.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 20d7375c1fdf054ca8ab9e5b9fe7fe62b39fa218
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:41 2010 +0000

    tg3: Fix single MSI-X vector coalescing
    
    The interrupt coalescing setup code used the TG3_FLG2_USING_MSIX flag to
    determine whether or not to configure the rx coalescing parameters.
    This is incorrect for the single MSI-X vector case.  This patch changes
    the code to look at the TG3_FLG3_ENABLE_RSS instead.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5efeeea1cf16b6382e1a9e2e389950024ba17f3e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Jul 11 09:31:40 2010 +0000

    tg3: Revert RSS indir tbl setup change
    
    This patch reverts commit 2601d8a0049c8b5d29cd5adb844a305a804e505f.  A
    spectacular set of coincidences made it look as though the table was
    setup incorrectly.  The original version was correct.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7fe876af921d1d2bc8353e0062c10ff35e902653
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Thu Jul 8 06:14:55 2010 +0000

    tg3: allow TSO on vlan devices
    
    Similar to commit 72dccb01e8632aa (bnx2: Update vlan_features)
    
    In order to enable TSO on vlan devices, tg3 needs to update
    dev->vlan_features.
    
    Tested on HP NC326m (aka BCM5715S (rev a3))
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 511d22247be767bbf275ee7a5a388c4f009aa0c1
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Wed Jul 7 20:44:24 2010 +0000

    tg3: 64 bit stats on all arches
    
    Now core network is able to handle 64 bit netdevice stats on 32 bit
    arches, we can provide them for tg3, since hardware maintains 64 bit
    counters.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 83038a2a7062f6cbbdcfaff47284566f060a5af1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:39 2010 +0000

    tg3: Update version to 3.111
    
    This patch updates the tg3 version to 3.111.
    
    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 302b500b27dda8e07b3cb967ff588de84ee87ba4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:38 2010 +0000

    tg3: Add 5719 PCI device and phy IDs
    
    This patch adds the 5719 PCI device and phy IDs.
    
    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 a50d0796b09ad909a25fc75e54eec7f713edeba8
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:37 2010 +0000

    tg3: Add 5719 ASIC rev
    
    This patch adds the 5719 ASIC revision.
    
    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 9c7df9157889a8f67d2d104fd52f2aacb3826fe7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:36 2010 +0000

    tg3: Use devfn to determine function number
    
    The driver sometimes needs to know which function number the current
    device is.  This patch changes the code to use devfn over internal
    register 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 57d8b88030ca9f295bb72ef65228c6d86bed22f6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:35 2010 +0000

    tg3: 5717: Allow serdes link via parallel detect
    
    The 5717 serdes phy brings link up via parallel detection without any
    additional help from the driver.  This patch changes the
    tg3_setup_fiber_mii_phy() function to detect and allow the use of this
    feature.
    
    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 2430b031be8d3eb57f22f2df6fb3784564109db0
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:34 2010 +0000

    tg3: Allow single MSI-X vector allocations
    
    This patch changes the code to make it legal to allocate only one MSI-X
    vector.  It also fixes a bug where the driver was not checking for error
    return codes from pci_enable_msix().
    
    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 2601d8a0049c8b5d29cd5adb844a305a804e505f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:33 2010 +0000

    tg3: Off-by-one error in RSS setup
    
    The driver was incorrectly programming the indirection table such that
    rx traffic intended for the second ring went to the first ring, rx
    traffic intended for the third ring went to the second ring, etc.  This
    patch changes the code so that rx traffic is diverted to the proper
    ring.
    
    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 b28f6428af279ffb9e97ee00486a29498b7fcfdc
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:32 2010 +0000

    tg3: Fix a memory leak on 5717+ devices
    
    The rx resources for MSI-X interrupt vector 0 were not being freed
    correctly.  This happens because the teardown loop continue's to the
    next loop iteration if it detects the tx ring for that vector is not
    setup, thus bypassing the rx teardown code.  This patch moves the
    call to tg3_rx_prodring_free() earlier in the loop.
    
    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 b1d0521059789a138d19c4f940d6eca7d620a6eb
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:31 2010 +0000

    tg3: Avoid tx lockups on 5755+ devices
    
    In certain edge conditions, internal tx resources can get corrupted.
    This patch enables a bit that will fix the problem.
    
    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 f92d9dc1504a964acfe07e8036fa30dcef22d343
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sat Jun 5 17:24:30 2010 +0000

    tg3: Relocate APE mutex regs for 5717+
    
    The 5717 and later devices relocate the APE mutex registers.  This patch
    organizes the code so that the driver can use the mutex registers in the
    old and new locations.
    
    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 e1703b36c358dde24ececba4fd609ecd91433ba3
Merge: 7ec75c5 e95ef5d
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Apr 27 12:49:13 2010 -0700

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
    
    Conflicts:
    	drivers/net/e100.c
    	drivers/net/e1000e/netdev.c

commit dc8bf1b1a6edfc92465526de19772061302f0929
Author: Andre Detsch <adetsch@br.ibm.com>
Date:   Mon Apr 26 07:27:07 2010 +0000

    tg3: Fix INTx fallback when MSI fails
    
    tg3: Fix INTx fallback when MSI fails
    
    MSI setup changes the value of irq_vec in struct tg3 *tp.
    This attribute must be taken into account and restored before
    we try to do a new request_irq for INTx fallback.
    
    In powerpc, the original code was leading to an EINVAL return within
    request_irq, because the driver was trying to use the disabled MSI
    virtual irq number instead of tp->pdev->irq.
    
    Signed-off-by: Andre Detsch <adetsch@br.ibm.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cb903bf4ee2d6e53210e2174d363e10698112042
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Apr 20 18:49:45 2010 -0700

    tg3: Enable GRO by default.
    
    This was merely an oversight when I added the *_gro_receive()
    calls.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4e5e4f0d65975ce092202cce48b42571bf84591e
Author: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Date:   Mon Apr 12 14:32:09 2010 +0000

    tg3: use the DMA state API instead of the pci equivalents
    
    This replace the PCI DMA state API (include/linux/pci-dma.h) with the
    DMA equivalents since the PCI DMA state API will be obsolete.
    
    No functional change.
    
    For further information about the background:
    
    http://marc.info/?l=linux-netdev&m=127037540020276&w=2
    
    Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    Cc: Matt Carlson <mcarlson@broadcom.com>
    Cc: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3941f1885bbf5b9f5e45cdd5a82efc794cc3823f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:31 2010 +0000

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

commit de6f31eb9a467cfd0f1f8c5e6ca842563f7f2870
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:30 2010 +0000

    tg3: Remove function errors flagged by checkpatch
    
    This patch removes the following checkpatch errors:
    
    * return is not a function, parentheses are not required
    * space prohibited between function name and open parenthesis '('
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 04380d401ebd02ec68bb0fc170f21a93690ebc80
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:29 2010 +0000

    tg3: Unify max pkt size preprocessor constants
    
    The maximum packet size that gets programmed into the standard producer
    ring control block is directly related to the packet size used to
    allocate packet buffers.  This patch removes the redundant preprocessor
    constant.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9dc7a1134919bda8951bf5909fb79c14defb8317
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:28 2010 +0000

    tg3: Re-inline VLAN tags when appropriate
    
    The tg3 driver is written so that VLAN tagged packets can be accepted,
    even if CONFIG_VLAN_8021Q or CONFIG_VLAN_8021Q_MODULE is not defined.
    (Think raw interfaces.)  If the device has ASF support enabled, the
    firmware requires the driver to enable VLAN tag stripping.  If VLAN
    tagging is not explicitly supported by the kernel and ASF is enabled,
    the driver will have to reinject the VLAN tag back into the packet
    stream.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d2757fc4076118e13180e91f02c3c52659be3d9d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:27 2010 +0000

    tg3: Optimize rx double copy test
    
    On a PCIX bus, the 5701 has a bug which requires the driver to double
    copy all rx packets.  The rx code uses the rx_offset device member as a
    flag to determine if this workaround should take effect.  The following
    patch will modify the rx_offset member such that this test will become
    less clear.
    
    The patch starts by integrating the workaround check into the packet
    length check.  It rounds out the implementation by relaxing the
    workaround restrictions if the platform has efficient unaligned
    accesses.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a977dbe8445b8a81d6127c4aa9112a2c29a1a008
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:26 2010 +0000

    tg3: Reduce 57765 core clock when link at 10Mbps
    
    This patch reduces the core clock to 6.25MHz when operating at 10Mbps
    link speed.  This is needed to prevent a bug that will ultimately cause
    transmits to cease.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1a3190254c0d1d1951e1d7e93542387c6ec82384
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:25 2010 +0000

    tg3: Set card 57765 card reader MRRS to 1024B
    
    This patch sets the Maximum Read Request Size for the card reader
    function to 1024 bytes to prevent an SD controller lockup.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cea46462681d61a65a208d17206d38739c1ea1b1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 12 06:58:24 2010 +0000

    tg3: Disable CLKREQ in L2
    
    This patch disables CLKREQ in L2 to workaround a chipset bug.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7ae554e5557bc8ee6ced437e5acffba922463a63
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:30 2010 +0000

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

commit 7705736f5fc2e8fd0aa98eb7667e65dbedf50d63
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:29 2010 +0000

    tg3: Remove tg3_dump_state()
    
    The tg3_dump_state() function is commented out and doesn't get used much
    when debugging efforts are underway.  The chip architecture has also
    changed enough that any debugging effort that might use it would have to
    tailor it to the capabilities of the hardware.  This patch just removes
    the function entirely.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 859a58879d7c771e78a373028d719467a2f8feb7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:28 2010 +0000

    tg3: Cleanup if codestyle
    
    This patch cleans up the code style as it pertains to if statements.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 33f401aec709e4fea414e5a4cf81b96462bc224f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:27 2010 +0000

    tg3: The case of switches
    
    This patch fixes checkpatch errors related to switch statements.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c6cdf43631c4108b38b872136c926691e987880f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:26 2010 +0000

    tg3: Whitespace, constant, and comment updates
    
    This patch fixes whitespace errors, preprocessor definition placement
    oddities and updates comments.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 184b89044fb6e2a74611dafa69b1dce0d98612c6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:25 2010 +0000

    tg3: Use VPD fw version when present
    
    This patch extracts the firmware version from the VPD area and changes
    the code to prefer that version version over the manually extracted
    version.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 75f9936e1150be739a9f6577a9d34de120ea35f1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:24 2010 +0000

    tg3: Prepare FW version code for VPD versioning
    
    The code that extracts the firmware version from the device's NVRAM
    assumes the firmware version member is a clean slate.  The following
    patch will add code to extract the firmware version from the VPD area
    of NVRAM, so this assumption will no longer be true.  This patch adjusts
    the versioning code to respect the VPD version if it exists.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5129c3a3faf8c5f4e6dd6ca581e1c4b06f8e837f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:23 2010 +0000

    tg3: Fix message 80 char violations
    
    Commit 05dbe005386e7521153dce6c5ad95c98b73b80c7, "Use (pr|netdev)_<level>
    macro helpers" extended some of the message lines longer than 80 chars.
    This patch reels the line lengths back in.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ab96b241fd82ec8d546684ab6e29b6530976780a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:22 2010 +0000

    tg3: netdev_err() => dev_err()
    
    Some uses of netdev_err() happen before the device has been registered.
    This will cause the messages to be prepended with "(unregistered
    net_device)" strings.  We can clean up the message by using dev_err()
    instead.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2445e461ce8c5a2316ed4c8a45cd2d0b6a366310
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:21 2010 +0000

    tg3: Replace pr_err with sensible alternatives
    
    All the instances of pr_err() in the tg3 driver have better
    alternatives.  This patch replaces all pr_err() calls.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6d40db7beaef823621ff3d340ef53d08445960b4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 5 10:19:20 2010 +0000

    tg3: Restore likely() check in tg3_poll_msix()
    
    When creating the new tg3_poll_msix() function, the likely() compiler
    hint was dropped.  This patch reintroduces it.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 22bedad3ce112d5ca1eaf043d4990fa2ed698c87
Author: Jiri Pirko <jpirko@redhat.com>
Date:   Thu Apr 1 21:22:57 2010 +0000

    net: convert multicast list to list_head
    
    Converts the list and the core manipulating with it to be the same as uc_list.
    
    +uses two functions for adding/removing mc address (normal and "global"
     variant) instead of a function parameter.
    +removes dev_mcast.c completely.
    +exposes netdev_hw_addr_list_* macros along with __hw_addr_* functions for
     manipulation with lists on a sandbox (used in bonding and 80211 drivers)
    
    Signed-off-by: Jiri Pirko <jpirko@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3f07d1295191cfa41125e4e61ee2064790070071
Author: Julia Lawall <julia@diku.dk>
Date:   Sat Mar 13 12:22:16 2010 -0800

    drivers/net/tg3.c: change the field used with the TG3_FLAG_10_100_ONLY constant
    
    The constant TG3_FLAG_10_100_ONLY should be used with the tg3_flags field,
    not the tg3_flags2 field, as done elsewhere in the same file.
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fe234f0e5cbb880792d2d1ac0743cf8c07e9dde3
Author: Louis Rilling <Louis.Rilling@kerlabs.com>
Date:   Tue Mar 9 06:14:41 2010 +0000

    tg3: Fix tg3_poll_controller() passing wrong pointer to tg3_interrupt()
    
    Commit 09943a1819a240ff4a72f924d0038818fcdd0a90
    	Author: Matt Carlson <mcarlson@broadcom.com>
    	Date:   Fri Aug 28 14:01:57 2009 +0000
    
    	tg3: Convert ISR parameter to tnapi
    
    forgot to update tg3_poll_controller(), leading to intermittent crashes with
    netpoll.
    
    Fix this.
    
    Signed-off-by: Louis Rilling <louis.rilling@kerlabs.com>
    Cc: stable@kernel.org
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4181b2c8bc29bb756ac1816678104b528377b656
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 26 14:04:45 2010 +0000

    tg3: Remove now useless VPD code
    
    Now that the VPD searching code is abstracted away, the outer loop used
    to detect the read-only large resource data type section is useless.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4067a8541d397e9d6b443dd2ce0ecb78bfd991db
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 26 14:04:43 2010 +0000

    pci: Add helper to search for VPD keywords
    
    This patch adds the pci_vpd_find_info_keyword() helper function to
    find information field keywords within read-only and read-write large
    resource data type sections.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e1d5bdabb94da89bdb3c3f2ee105cf61fca88ec8
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 26 14:04:42 2010 +0000

    pci: Add VPD information field helper functions
    
    This patch adds a preprocessor constant to describe the PCI VPD
    information field header size and an inline function to extract the
    size of the information field itself.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b55ac1b22690d2e5b02a61cf6d69c2d66969c79d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 26 14:04:41 2010 +0000

    pci: Add helper to find a VPD resource data type
    
    This patch adds the pci_vpd_find_tag() helper function to find VPD
    resource data types in a buffer.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7ad506fa1adc2da3d394c562f09b8e1b3026c402
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 26 14:04:40 2010 +0000

    pci: Add large and small resource data type code
    
    This patch introduces more VPD preprocessor definitions to identify some
    small and large resource data type item names.  The patch then continues
    to correct how the tg3 and bnx2 drivers search for the "read-only data"
    large resource data type.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a2ce766238f72ff7337606c0bc96803c30c9e05c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 26 14:04:39 2010 +0000

    pci: Add PCI LRDT tag size and section size
    
    This patch adds a preprocessor constant to describe the PCI VPD large
    resource data type tag size and an inline function to extract the large
    resource section size from the large resource data type tag.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 567ec874d15b478c8eda7e9a5d2dcb05f13f1fb5
Author: Jiri Pirko <jpirko@redhat.com>
Date:   Tue Feb 23 23:17:07 2010 +0000

    net: convert multiple drivers to use netdev_for_each_mc_addr, part6
    
    Signed-off-by: Jiri Pirko <jpirko@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 05dbe005386e7521153dce6c5ad95c98b73b80c7
Author: Joe Perches <joe@perches.com>
Date:   Wed Feb 17 19:44:19 2010 +0000

    drivers/net/tg3.c: Use (pr|netdev)_<level> macro helpers
    
    Add #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    Remove #define PFX
    Use pr_<level>
    Use netdev_<level>
    Remove periods from most formats
    Coalesce long formats
    Use printk_once
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit be7ce5307ded2e416224baab0bd1e5072591f33f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:17:05 2010 +0000

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

commit 6a443a0f72ad7706345412dbd2e4d4981fdfce39
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:17:04 2010 +0000

    tg3: Push phylib definitions to phylib
    
    This patch pushes phylib definitions out to phylib headers.  For phy
    IDs, this removes some code duplication.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 79eb6904361fe4e54e589919a9b62c5e036c42c3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:17:03 2010 +0000

    tg3: Rename tg3 phy ID preprocessor definitions
    
    The phylib presents the phy ID in a different format than the one tg3
    has traditionally used.  To highlight the distinction, this patch
    prepends the tg3 native phy ID format with TG3.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 24daf2b0a4005f3a4e757752fcfed9da276cf202
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:17:02 2010 +0000

    tg3: Reformat SSID to phy ID table
    
    This patch reformats the SSID to phy ID table, replacing constants with
    preprocessor definitions.  This patch is also prep work for the
    following patch, which will push line lengths beyond 80 chars.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9ea4818dd39cc8c6b31c38c9f51d19d5d4ee0be6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:17:01 2010 +0000

    tg3: Discover phy address once
    
    The phy address will not change after it has been identified.  Move the
    discovery code to a location that only gets executed once.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0d86df808886d4e56c46a9c356dfb81146e3b6d1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:17:00 2010 +0000

    tg3: Reduce indent level of tg3_rx_prodring_alloc
    
    This patch adds an inverted "jumbo ring enable" test and jumps to the exit
    if it succeeds.  The change reduces the indent level of the remaining
    code making it more readable.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 144170635b543ceadfe6ba907ac496b40795764e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:16:59 2010 +0000

    tg3: Rename TG3_FLG3_RGMII_STD_IBND_DISABLE
    
    The STD part of this preprocessor definition is a bit of a misnomer.
    This flag is a coarse control of the RGMII inband status facilities.
    This patch renames the definition to be more accurate.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b474eca74cf647df0a7fd56bc975ee4a812741b7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:16:58 2010 +0000

    tg3: Add more partno entries for fallback path
    
    This patch adds 57765 asic partno entries for the path executed if VPD
    is not present in NVRAM.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2712168f856e8cd42265e7ef855d64702da20089
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:16:57 2010 +0000

    tg3: Allow phylib flowctrl changes anytime
    
    This patch loosens the restriction that the phylib interface must be up
    and running to change the flow control parameters.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a4153d401ac440c73e0721db0b6b031e8e6f77d1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:16:56 2010 +0000

    tg3: Add support for 2 new selfboot formats
    
    This patch adds new offsets to the bootcode version extraction code to
    support NVRAM format versions 4 and 5.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d110114281fad580dd9ce629507d17b123169cff
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:16:55 2010 +0000

    tg3: Make 57791 and 57795 10/100 only
    
    This patch adds the 57791 and 57795 to the list of devices that only
    support 10 and 100 Mbps speeds.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 61e800cf949926b3d463ca3cf3025d964872774b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 17 15:16:54 2010 +0000

    tg3: Enforce DMA mapping / skb assignment ordering
    
    Michael Chan noted that there is nothing in the code that would prevent
    the compiler from delaying the access of the "mapping" member of the
    newly arrived packet until much later.  If this happened after the
    skb = NULL assignment, it is possible for the driver to pass a bad
    dma_addr value to pci_unmap_single().  To enforce this ordering, we need
    a write memory barrier.  The pairing read memory barrier already exists
    in tg3_rx_prodring_xfer() under the comments starting with
    "Ensure that updates to the...".
    
    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 b3b3f04fb587ecb61b5baa6c1c5f0e666fd12d73
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:13 2010 +0000

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

commit 1061b7c56482310bbb8197045d51e2986afabfce
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:12 2010 +0000

    tg3: Fix AC131 loopback test errors for 5785
    
    The AC131 does not enable the forced transmit clock settings
    immediately.  The workaround is to read the register again to get the
    setting to take effect.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c88734054e787542ea093b02120e324e92cad882
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:11 2010 +0000

    tg3: Fix napi assignments in loopback test
    
    The 57765 lacks TSS support.  This renders the napi assignments
    incorrect in the loopback test function.  This patch fixes the problem.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 603f11738cee4d46a2a1d394ae80d718f8d37cba
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:10 2010 +0000

    tg3: Reset phy during bringup when using phylib
    
    The driver puts the phy into low-power mode when it releases the device.
    If the device were to be reacquired, the phy needs a reset to bring it
    back to full powered operation.  This patch allows phylib-enabled
    devices to reset the phy.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0339e4e3effeae71e2b19c6340ef9672fb7a2cb3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:09 2010 +0000

    tg3: Turn off multiple DMA reads for 5717
    
    The 5717's DMA read engine has a bug when initiating multiple DMA reads
    across the PCIe bus.  This patch disables the feature.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6b10c1653e425e30cff7f41d0e6f9743bfa9810f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:08 2010 +0000

    tg3: Fix 57765 A0 bootcode race condition
    
    On A0 revision of 57765 asic rev devices, the bootcode will perform some
    hardware operations, after the magic signature is presented, that will
    collide with setup operations performed by the driver.  The best way to
    avoid the contention is to have the driver delay an additional 10
    milliseconds.  B0 revisions of the chip will make this workaround
    unnecessary.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f89f38b8ec3171664314669a1396ab70b43e8961
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:07 2010 +0000

    tg3: Unwedge stuck MSI-X vectors
    
    The previous patch changed the code so that new rx buffer submissions to
    the hardware stall if a new submission would overwrite data needed by an
    unserviced rx packet.  On very busy 5717 and 57765 asic rev devices,
    there is a corner case where the hardware will fail to assert an MSI-X
    interrupt for rx traffic.  If that vector's interrupt never has another
    reason to assert, any rx buffers held will never be serviced.  If the
    buffers are never serviced and the hardware consumes all the available
    rx packets for other rx rings, deadlock will result.
    
    The most reliable and least intrusive way to work around the problem is
    to detect the case where new submissions would overwrite existing data
    and force all rx interrupt vectors to fire.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e92967bfb1f4fa7da7c425df9239c4bb615dec30
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:06 2010 +0000

    tg3: Prevent rx producer ring overruns
    
    When operating in RSS mode, it is possible for one rx return ring to
    submit enough rx buffers back to the hardware such that it inadvertently
    overwrites data needed by another rx return ring.  This patch addresses
    the problem by looking for non-NULL skb pointers in the
    rx_[std|jmb]_buffers rings that parallel the rx producer rings.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e4af1af900328e4aa71cd5df75bb22669ab11522
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Feb 12 14:47:05 2010 +0000

    tg3: Give MSI-X vec 1 rx backlog space
    
    RSS ring 1 is responsible for submitting new rx buffers to the
    hardware on behalf of all the other RSS rx return rings.  Up until now
    this ring submitted its new rx buffers to the producer ring directly.
    The following patch will require that this ring have a place to put
    backlogged rx packets.  As a consequence, it can no longer submit new
    buffers to the producer ring.
    
    This patch adds code to allocate an extra shadow producer ring for this
    RSS ring and adds RSS ring 1 to the list of rings needing buffer
    transfers.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4cd24eaf0c6ee7f0242e34ee77ec899f255e66b5
Author: Jiri Pirko <jpirko@redhat.com>
Date:   Mon Feb 8 04:30:35 2010 +0000

    net: use netdev_mc_count and netdev_mc_empty when appropriate
    
    This patch replaces dev->mc_count in all drivers (hopefully I didn't miss
    anything). Used spatch and did small tweaks and conding style changes when
    it was suitable.
    
    Jirka
    
    Signed-off-by: Jiri Pirko <jpirko@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 51c24aaacaea90c8e87f1dec75a2ac7622b593f8
Merge: 4276e47 6be3257
Author: David S. Miller <davem@davemloft.net>
Date:   Sat Jan 23 00:31:06 2010 -0800

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

commit b0f752210c0aa5e3d9ece4cbfefdc43092a68b83
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:11 2010 +0000

    tg3: Add 57765 phy ID and enable devices.
    
    This patch rounds out the 57765 asic rev support by adding the 57765 phy
    ID and entering the 57765 device IDs in the pci table.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 334355aa590c4b58750015c2f5710cd5074f45dd
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:10 2010 +0000

    tg3: Bypass power source switching for 57765
    
    The 57765 repurposes all the GPIOs normally used to switch power sources
    when configured as a NIC device.  This patch changes the code to avoid
    touching the GPIOs for this asic rev.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cb4ed1fd8af963101a59c8c5fef97cbbf5f3fb88
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:09 2010 +0000

    tg3: Turn off the debug UART for 57765
    
    If the debug UART is left enabled, the LEDs will not work properly.
    This patch disables the debug UART.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c2353a3214ff5813c4b719b3cdacbe939b1c63a0
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:08 2010 +0000

    tg3: Fix tx mailbox initialization
    
    If a device supports MSI-X interrupts, the driver assumes TSS will be
    available.  This is not true for the 57765.  This patch changes the code
    so that only the default tx mailbox is initialized if TSS is not
    available.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5fd68fbdaf75505a2400826c7f314a1f3121a5f7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:07 2010 +0000

    tg3: Supply a nicaddr for 57765 jumbo RCB
    
    The 57765 needs the driver to supply a nic address to the jumbo RCB,
    just like all other devices except the 5717.  This patch changes the
    test to single out the 5717 rather than maintain a lengthy whitelist of
    asic revs.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8b5a6c42e1f2277433aeefa9ee5a0c1a2473b7d8
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:06 2010 +0000

    tg3: Fix 5717 and 57765 memory selftests
    
    Both the 5717 and the 57765 will fail 'ethtool -t' selftests at the
    memory selftest portion.  The memory map for these two devices differs
    from the rest of the asic revs and each other.  This patch adds a new
    memory map to use for memory selftests.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ecf1410b9d70b3034e5955e92bb0c3e02ff21e9c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:05 2010 +0000

    tg3: Abort phy init for 5717 serdes devices
    
    The 5717 serdes devices have a different phy register layout than all
    other previous serdes devices.  This patch aborts the phy init sequence
    in tg3_phy_reset() if the device is a 5717 serdes.  It also aborts the
    tg3_phy_toggle_apd() operation.  Most other operations in the MII_SERDES
    path are O.K.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9b952f51d019db37276bdb2924e776ca09132fc1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:04 2010 +0000

    tg3: Add 5717 serdes phy ID
    
    The serdes and copper phys of the 5717 asic rev have different phy IDs.
    This patch adds the serdes phy ID.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 666bc831cf820e16cbd0c2d5be780c512b1afe15
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:03 2010 +0000

    tg3: Improve internal resource allocations
    
    The 5717 and the 57765 have more resources at their disposal internally.
    This patch tunes the driver to get better performance.  The adjustments
    made here only apply to the 57765 and 5717 asic revs.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 614b05900ec3516b835cd06f848ef6bc915beeea
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Jan 20 16:58:02 2010 +0000

    tg3: Enable PLL PD when CLKREQ disabled for 5717A0
    
    PCIe PLL power down cannot be used if CLKREQ is enabled because data
    corruption will occur.  If CLKREQ is disabled though, enabling PCIE P1
    PLL power-down saves some power.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ba5b0bfa06b6fbee03c6889046e9adcefa5d2c20
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 12 10:11:40 2010 +0000

    tg3: Update copyright and driver version
    
    This patch updates the copyright notice for 2010 and updates the version
    number to 3.106.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 55dffe79b34e2af98bd1315f1e00c2fc6a7a7078
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 12 10:11:39 2010 +0000

    tg3: Disable 5717 serdes and B0 support
    
    The B0 revision of the 5717 will not get enough testing by the time
    2.6.33 ships.  Since the kernel is already at RC3, serdes support
    will require too many patches to fix.  For these reasons, this patch
    disables 5717 serdes support and will refuse to attach to all 5717
    devices that are later than an A0 revision.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d1ec96af77df611d1728f3bb70289f83a02df1ea
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 12 10:11:38 2010 +0000

    tg3: Add reliable serdes detection for 5717 A0
    
    The serdes status bit does not work as intended for the 5717 A0.
    This patch implements an alternative detection scheme that will only be
    valid for A0 revisions.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 86cfe4ff02a51294cb2c974a8bedc7f648491df9
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 12 10:11:37 2010 +0000

    tg3: Fix std rx prod ring handling
    
    There are some tg3 devices that require the driver to post new rx
    buffers in smaller increments.  Commit
    4361935afe3abc3e5a93006b99197fac1fabbd50, "tg3: Consider
    rx_std_prod_idx a hw mailbox" changed how the driver tracks the rx
    producer ring updates, but it does not make any special considerations
    for the above-mentioned devices.  For those devices, it is possible for
    the driver to hit the special case path, which updates the hardware
    mailbox register but skips updating the shadow software mailbox member.
    If the special case path represents the final mailbox update for this
    ISR iteration, the hardware and software mailbox values will be out of
    sync.  Ultimately, this will cause the driver to use a stale mailbox
    value on the next iteration, which will appear to the hardware as a
    large rx buffer update.  Bad things ensue.
    
    The fix is to update the software shadow mailbox member when the special
    case path is taken.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reported-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 13fa95b0398d65885a79c6e95a09976ee9f8c009
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Jan 12 10:11:36 2010 +0000

    tg3: Fix std prod ring nicaddr for 5787 and 57765
    
    Commit 87668d352aa8d135bd695a050f18bbfc7b50b506, titled "tg3: Don't
    touch RCB nic addresses", tried to avoid assigning the nic address of
    the standard producer ring.  Unfortunately, the default nic address is
    not correct for the 5787, the 5755M, or the 57765.  This patch
    reenables the old behavior and opts out of the assignment only
    for the 5717.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Tested-by: Chow Loong Jin <hyperair@ubuntu.com>
    Tested-by: Dmitry Torokhov <dtor@mail.ru>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a3aa18842a5303fc28fcc4d57dbd16618bd830a0
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Thu Jan 7 11:58:11 2010 +0000

    drivers/net/: use DEFINE_PCI_DEVICE_TABLE()
    
    Use DEFINE_PCI_DEVICE_TABLE() so we get place PCI ids table into correct section
    in every case.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cceea982ef78cf358b70f3412a6799f153211e14
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 3 08:36:25 2009 +0000

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

commit 026a6c21646cf77ea838f3c121de29cdf948ca71
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 3 08:36:24 2009 +0000

    tg3: Clean tg3_init_one()
    
    Tg3's firmware is no longer loaded from tg3_init_one().  Remove the
    error path that releases the firmware back to the system.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 94c982bd9f07b801f03cebe32b20f893b4ad6d27
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 3 08:36:23 2009 +0000

    tg3: Use pci_read_vpd() instead of private method
    
    If the driver needs to use PCI configuration space to read the VPD data,
    the accesses could collide with the pci_read_vpd() function.  This patch
    converts the driver to use pci_read_vpd() to avoid any potential
    collisions.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 141518c95870228da4e050fbe31a8f0c9df82c72
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 3 08:36:22 2009 +0000

    tg3: Add some VPD preprocessor constants
    
    This patch cleans up the VPD code by creating preprocessor definitions
    and using them in the place of hardcoded constants.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b703df6f628ab63eaa875232551b1f2f0503b9af
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 3 08:36:21 2009 +0000

    tg3: Add 57765 asic rev
    
    This patch adds the 57765 asic revision.
    
    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 19cfaecc094781da273b5cd1411ee46589898d0e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu Dec 3 08:36:20 2009 +0000

    tg3: Make TSS enable independent of MSI-X enable
    
    The 57765 asic rev has MSI-X capability, but does not support TSS.  This
    patch changes the tx paths so that TSS is explicitly mentioned, rather
    than implied through the ENABLE_MSIX flag.
    
    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 8e95a2026f3b43f7c3d676adaccd2de9532e8dcc
Author: Joe Perches <joe@perches.com>
Date:   Thu Dec 3 07:58:21 2009 +0000

    drivers/net: Move && and || to end of previous line
    
    Only files where David Miller is the primary git-signer.
    wireless, wimax, ixgbe, etc are not modified.
    
    Compile tested x86 allyesconfig only
    Not all files compiled (not x86 compatible)
    
    Added a few > 80 column lines, which I ignored.
    Existing checkpatch complaints ignored.
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f4188d8affc8267a0f0f1b587a4d0a4b9b7f2999
Author: Alexander Duyck <alexander.h.duyck@intel.com>
Date:   Wed Dec 2 16:48:38 2009 +0000

    tg3: remove use of skb_dma_map/unmap
    
    Due to the fact that skb_dma_map/unmap do not work correctly when a HW
    IOMMU is enabled it has been recommended to go about removing the calls
    from the network device drivers.
    
    Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    CC: Matt Carlson <mcarlson@broadcom.com>
    CC: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c5d5d1721763842a516529e553433d13b11c3f31
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:52 2009 +0000

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

commit 5001e2f638011859c1351f9fe57ca4e545a15c47
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:51 2009 +0000

    tg3: Fix DIDs, Enable 5717 support
    
    This patch fixes the 5717 variant device ID enumerations and adds those
    DIDs to the PCI ID table.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b196c7e45f30cbcd38c83386bc8a04a21477f8d3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:50 2009 +0000

    tg3: Add rx prod ring consolidation
    
    This patch adds code to funnel each MSI-X vector's rx packet buffers
    into a single set of producer rings which will then be submitted to the
    hardware.
    
    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 66711e66639776685aeaad774488be1857abce26
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:49 2009 +0000

    tg3: Create aliases for rx producer mailbox regs
    
    The rx producer mailbox registers are used in several spots in the code.
    The addition of TG3_64BIT_REG_LOW makes register references
    uncomfortably long.  This patch creates an alias for the standard and
    jumbo ring producer index registers to make the code cleaner.
    
    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 2b2cdb65bec42d38268b2ac115876b066afa7f95
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:48 2009 +0000

    tg3: Lay proucer ring handling groundwork
    
    The patch increases the number of producer rings available and
    implements the constructor and destructor code that deals with them.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4361935afe3abc3e5a93006b99197fac1fabbd50
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:47 2009 +0000

    tg3: Consider rx_std_prod_idx a hw mailbox
    
    This patch changes how the code uses the rx_std_prod_idx member.  In the
    following patch, the code will be changed so that it will act just like
    a hardware mailbox.  This patch prepares the code so that memory barriers
    can be more easily inserted.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 411da6407e778bf946911df08bb5afc505422f31
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:46 2009 +0000

    tg3: rename rx_[std|jmb]_ptr
    
    A later patch is going to add consumer indicies for the producer rings.
    To keep things readable, this patch renames rx_[std|jmb]_ptr to
    rx_[std|jmb]_prod_idx.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 86b21e59c9a65c8e46d35ac6c4220f63639828c6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:45 2009 +0000

    tg3: tg3_alloc_rx_skb(tnapi => tp)
    
    This patch converts the tnapi argument of tg3_alloc_rx_skb() to tp.  The
    level of indirection is unnecessary.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a3896167160ce9ad1eadeb88fd2f3971888444ae
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:44 2009 +0000

    tg3: Add prodring parameter to tg3_alloc_rx_skb()
    
    This patch changes the tg3_alloc_rx_skb() implementation to accept the
    destination producer ring set pointer as a parameter rather than
    assuming the source and destination producer rings are the same.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit afc081f83c59a7cf2c025a3ed89d011b5db556eb
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:43 2009 +0000

    tg3: Make tg3_alloc_rx_skb() a dst-only operation
    
    This patch removes the source index parameter of tg3_alloc_rx_skb().  A
    later patch will make it possible for the source and destination
    producer rings to be different.  This patch opts to make
    tg3_alloc_rx_skb() a destination-only implementation and move the code
    sensitive to the difference elsewhere.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 78f90dcf184b8225a24217605c4289f1986451a3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:42 2009 +0000

    tg3: Move napi_add calls below tg3_get_invariants
    
    tg3_get_invariants(), among other things, discovers whether or not
    the device is MSI-X capable and how many interrupts it supports.
    This discovery needs to happen before registering NAPI instances with
    netdev.  This patch moves the code block that calls napi_add later in
    tg3_init_one() so that tg3_get_invariants() has a chance to run first.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 35f2d7d0d7c222a580da0ed91c8d70c54267620a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:41 2009 +0000

    tg3: Create tg3_poll_msix() for non-zero MSIX vecs
    
    This patch gives all non-zero MSIX vectors their own NAPI handler.  This
    will make NAPI handling for those vectors slightly more efficient.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cbf9ca6cf8304beb640a948709c4672bc1d5a55f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:40 2009 +0000

    tg3: Allow DMAs to cross cacheline boundaries
    
    By default, the 5717 (and future chips) break up PCIe DMA packets across
    cacheline boundaries.  This isn't necessary on x86.  This patch
    selectively loosens the restriction.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 615774fe598f8ee971a8dfeb1f2ec4211241c433
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:39 2009 +0000

    tg3: Use tg3_start_xmit_dma_bug for 5717 A0
    
    The A0 revision of the 5717 has problems with short packet fragments.
    It needs to use the tg3_start_xmit_dma_bug() routine.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e849cdc309de4a1e49dc3c23c6c36da91b990c9f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:38 2009 +0000

    tg3: Add new HW_TSO_3 flag for 5717
    
    The 5717 sets up TSO slightly differently in the transmit path.  It
    looks like this method will be the new way of doing things.  This patch
    defines a flag to indicate this.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 507399f18ea5810de42f0ea228c14305a8f67512
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:37 2009 +0000

    tg3: Refine TSO and MSI discovery
    
    This patch consolidates the TSO capability discovery code into its own
    code block.  The code that decides whether or not to allow TSO is then
    cleaned up.  Finally, the patch consolidates all MSI and MSIX
    capability code into a single code block.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f66a29b03a2637ff052f2b8a81a5417fa44e228b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:36 2009 +0000

    tg3: Move TG3_FLG2_PROTECTED_NVRAM to tg3_flags3
    
    We need room for another TSO flag and it would be most efficient if it
    resided in tg3_flags2.  This patch moves the TG3_FLG2_PROTECTED_NVRAM
    to tg3_flags3 to make room.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 24f4efd4e6c89a4093d0b8653d6669e45de45001
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:35 2009 +0000

    tg3: Napify tg3_start_xmit_dma_bug()
    
    This patch converts tg3_start_xmit_dma_bug() to accomodate multiple NAPI
    instances.  This is prep work for a later patch in this series.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 87668d352aa8d135bd695a050f18bbfc7b50b506
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:34 2009 +0000

    tg3: Don't touch RCB nic addresses
    
    This patch avoids reprogramming the RCB NIC addresses for all 5755 and
    later devices.  The address is incorrect for 5717 devices and should be
    correct by default for all other affected devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c2060fe1f36565e60e622662a4519babd3b72f68
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 13 13:03:33 2009 +0000

    tg3: Add 5717 phy ID
    
    This patch adds the 5717 phy ID.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 123b43e9716115302a0095e14f2c545811712715
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:33:03 2009 +0000

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

commit 52fae0837153e86e4dabaf5df517a0b8b7a20bd7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:32:38 2009 +0000

    tg3 / broadcom: Optionally disable TXC if no link
    
    This patch adds code to disable the TXC and RXC reference clocks if link
    is not available.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c704dc23cac0e433796bfe0a1fe2f1a64da11ac7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:32:12 2009 +0000

    tg3 / broadcom: Add APD support for GPHYs
    
    This patch adds an RXC auto power-down feature to the code that supports
    the gphys.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 32e5a8d651c0dbb02bf82ca954206282e44c4b11
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:31:39 2009 +0000

    tg3 / broadcom: Add code to disable rxc refclk
    
    The 5785 does not use the RXC reference clock.  Turning it off is
    desirable as it saves power.
    
    By default, the 50610 enables the RXC reference clock and the 50610M
    disables it.  Presumably this is one of the reasons why the hardware
    architect chose one over the other.
    
    Adding a "rx reference clock disable" flag is not the ideal way to
    describe the option, as it would force the MAC using a 50610M to set
    the flag.  Ideally we want the flags to represent opt-in behavior that
    deviates from hardware defaults.  Furthermore, the lack of a
    "disable" flag implies that the requester wants the rx reference clock
    enabled, which doesn't necessarily follow.
    
    By presenting the option as a passive statement (rx reference clock
    unused) rather than a command, I hope to convey an opt-in option to
    disable the rx reference clock that falls back to hardware defaults if
    not set.  A secondary benefit of this is that it keeps the
    intelligence about phy defaults in the broadcom module where it belongs
    and allows the broadcom module more latitude should a bug arise.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cdd4e09d692bd4f3457b3789279005e112b7696d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:31:11 2009 +0000

    tg3 / broadcom: Refine AC131 APD support
    
    Auto power-down (APD) support is a power-saving feature.  It should be
    selectively enabled since it might expose MAC bugs.  This patch changes
    the code to enable APD only if the PHY_BRCM_AUTO_PWRDWN_ENABLE flag is
    set.  The tg3 driver was changed to set this bit.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 63a14ce449dd6d647de2725809159eb072b2c44f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:30:40 2009 +0000

    tg3 / broadcom: Add PHY_BRCM_CLEAR_RGMII_MODE flag
    
    Broadcom 50610M parts changed the default definitions of the RGMII mode
    shadow register.  The 5785 needs the RGMII mode selection bits [4:3]
    cleared.
    
    The default value of the remaining bits in this register are zero.
    Rather than unnecessarily burn an extra bit in the dev_flags member in
    an attempt to enumerate all possible combinations, this patch take a
    more course grained approach and labels the option as "clear all bits".
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c73430d04ec75962e20e186d34c40b6d999f0968
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:29:34 2009 +0000

    tg3: Add 50610M phy ID for 5785
    
    This patch adds the 50610M phy ID for 5785.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 303fc9218246a748304c005e629d658927cf12d0
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:27:34 2009 +0000

    tg3: Extend loopback test timeout
    
    This patch extends the loopback test timeout from 250 usec to 350 usec.
    When the 5785 is paired against an AC131 phy, the older timeout is
    just a little too close to the expected performance based on timings.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c3df0748ee43101dfc5c94d1f61ddfca0ff5baa4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:27:02 2009 +0000

    tg3: 5785: Set port mode to MII when link down
    
    This patch sets the port mode to MII when the link is down for the 5785.
    Setting the port mode to MII instead of GMII saves power.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0e5f784c77197edf29d2770b518dc78777d5a480
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:26:38 2009 +0000

    tg3: Add AC131 power down support
    
    The AC131 does not respect the power down bit (bit 11) of the MII
    Control Register (reg 0x0).  Instead, software is required to put the
    phy into standby power down mode through the shadow register set.  This
    patch implements support for the AC131 standby power down mode.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 788a035e6061a66c6c77059c417fdc6234e140ff
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:26:03 2009 +0000

    tg3: Improve 5785 PCIe performance
    
    This patch improves 5785 performance by allowing the write DMA engine to
    request larger DMA burst sizes than it otherwise would.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a21771dd189b340328c573da9e005068e8a74c53
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:25:31 2009 +0000

    tg3: Add more PCI DMA map error checking
    
    This patch adds code to check the status of pci_map_single() before
    allowing rx buffers to be used.  It also converts the pci_map_single()
    call in tg3_run_loopback() to use skb_dma_map() instead.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 52cdf8526fe24f11d300b75458ddee017f3f4c88
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:25:06 2009 +0000

    tg3: Prevent a PCIe tx glitch
    
    This patch prevents a PCIe tx glitch by allowing the transmitter to go
    to a low power state.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3f0e3ad72393db9c2932a2ca86cc1a49294bbc63
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:24:36 2009 +0000

    tg3: Convert PHY_ADDR => TG3_PHY_MII_ADDR
    
    This patch renames the PHY_ADDR preprocessor definition.  The following
    patch will identify a new member on the MDIO bus, so we want this
    preprocessor definition to be a little more descriptive.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f40386c8452f9eead9c5906bfffaaf59f3dc748f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:24:02 2009 +0000

    tg3: Fix disappearing 57780 devices
    
    Under certain power saving conditions, 57780 asic rev devices might
    disappear from the system.  The fix is to disallow the PCIe PLL from
    powering down.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 92c6b8d16a36df3f28b2537bed2a56491fb08f11
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 14:23:27 2009 +0000

    tg3: Fix 5906 transmit hangs
    
    The 5906 has trouble with fragments that are less than 8 bytes in size.
    This patch works around the problem by pivoting the 5906's transmit
    routine to tg3_start_xmit_dma_bug() and introducing a new SHORT_DMA_BUG
    flag that enables code to detect and react to the problematic 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 0e1406dd404ce55dbe8d68b4b5e2aed7e5c75fdb
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 2 12:33:33 2009 +0000

    tg3: Assign flags to fixes in start_xmit_dma_bug
    
    This patch adds a flag for each bug workaround in
    tg3_start_xmit_dma_bug().  This is prep work for the following patch.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 24bb4fb6dac59f220f42fb375ba0e0f19365a227
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Oct 5 17:55:29 2009 +0000

    tg3: Fix phylib locking strategy
    
    Felix Radensky noted that chip resets were generating stack trace dumps.
    This is because the driver is attempting to acquire the mdio bus mutex
    while holding the tp->lock spinlock.  The fix is to change the code such
    that every phy access takes the tp->lock spinlock instead.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5ea1c50662d447de344812054175d7151783ea25
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Sep 11 16:50:16 2009 -0700

    tg3: Fix return ring size breakage
    
    Commit f6eb9b1fc1411d22c073f5264e5630a541d0f7df, "tg3: Add 5717 asic
    rev" changed how the rx return ring size operations are done.  It
    effectively inverts the sense of the previous test, but it failed to
    also invert the resulting sizes.  This patch corrects that error.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7ab0f2736bfe137a82a7084bbfb5f809da95cabd
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Thu Sep 3 10:39:43 2009 +0000

    netdev: Remove redundant checks for CAP_NET_ADMIN in MDIO implementations
    
    dev_ioctl() already checks capable(CAP_NET_ADMIN) before calling the
    driver's implementation of MDIO ioctls.
    
    Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit daf09de817353f18bb81a23a023d429cfd258e62
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:22:42 2009 +0000

    tg3: Update version to 3.102
    
    This patch updates the tg3 version to 3.102.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 882e9793faa9425dff581c33b1af45ed10145626
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:21:36 2009 +0000

    tg3: Add MDIO bus address assignments
    
    The 5717 is a dual port chip that has a shared MDIO bus design.  While
    it is impossible for one function to interface with the wrong phy, that
    function still needs to know which MDIO bus address to use when
    interfacing with its own phy.  This patch adds code to determine which
    MDIO bus address to use.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a1b950d56de3c72bea3343f54de24c43fb7dc74e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:20:17 2009 +0000

    tg3: Add 5717 NVRAM detection routines
    
    This patch adds NVRAM detection routines for the 5717.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f6eb9b1fc1411d22c073f5264e5630a541d0f7df
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:19:53 2009 +0000

    tg3: Add 5717 asic rev
    
    This patch adds the 5717 asic rev.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8d9d7cfc0ec2fe37ff9afd74326d03f38f96ad1b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:19:05 2009 +0000

    tg3: Assign rx ret producer indexes by vector
    
    When RSS is enabled, the status block format changes slightly.  The
    "rx_jumbo_consumer", "reserved", and "rx_mini_consumer" members get
    mapped to the other three rx return ring producer indexes.  This patch
    introduces a new per-interrupt member which identifies which location
    in the status block a particular vector should look for return ring
    updates.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0c1d0e2b05e92ad847b3ebe1c75b7974086bc8fa
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:16:33 2009 +0000

    tg3: Adjust RSS ring allocation strategies
    
    When multivector RSS is enabled, the first interrupt vector is only used
    to report link interrupts and error conditions.  This patch changes the
    code so that rx and tx ring resources are not allocated for this vector.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit baf8a94a572928710e9e60967d153a7bf3aebd9c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:13:00 2009 +0000

    tg3: Add RSS support
    
    This patch adds code needed to enable RSS.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b6080e126012047d42e53154189fdca286d0600e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:12:00 2009 +0000

    tg3: Add coalesce parameters for msix vectors
    
    This patch adds code to tune the coalescing parameters for the other
    msix vectors.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fed9781081aa9600765346c108ff22751e003715
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:10:19 2009 +0000

    tg3: Enable NAPI instances for other int vectors
    
    This patch adds code to enable and disable the rest of the NAPI
    instances.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fe5f5787f0866e9f883bdd90018a354f2f3defd1
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:09:39 2009 +0000

    tg3: Add TSS support
    
    This patch exposes the additional transmit rings to the kernel and makes
    the necessary modifications to transmit, open, and close paths.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 89aeb3bceaa1a02651206a76a7b9dcb8f3884702
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:08:58 2009 +0000

    tg3: Update intmbox and coal_now for msix
    
    This patch fixes up two spots that need attention now that msix support
    has been added.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f77a6a8e6cee17b21a43bdf6b853cc2fc0e2c4df
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 13:04:37 2009 +0000

    tg3: Add tx and rx ring resource tracking
    
    This patch adds code to assign status block, tx producer ring and rx
    return ring resources needed for the other interrupt vectors.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 646c9eddcffd202bb0f3d906cecf94eaf10cad31
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 12:58:41 2009 +0000

    tg3: Add mailbox assignments
    
    The 5717 assigns mailbox locations to interrupt vectors in a rather
    non-intuitive way.  (Much of the complexity stems from legacy
    compatibility issues.)  This patch implements the assignment scheme.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 679563f47cd2547a0e091b5bd3ddf30027af6b08
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 12:55:46 2009 +0000

    tg3: Add MSI-X support
    
    This patch adds MSI-X support.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4f125f42dd55390016e21f8b3960f99d02d1001f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 12:55:02 2009 +0000

    tg3: Add support code around kernel interrupt API
    
    This patch adds code to support multiple interrupt vectors around the
    kernel's interrupt API.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2d31ecaf10c4ae03d49aed516481b2839b0220f6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 12:53:31 2009 +0000

    tg3: Create tg3_rings_reset()
    
    This patch moves most of the chip ring setup logic into a separate
    function.  This will make it easier to verify the multi ring setup
    changes.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fd2ce37f8e4a570ce90b141a2e7c476c5b399836
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 12:51:13 2009 +0000

    tg3: Add per-int coalesce now member
    
    Each interrupt vector has its own bit in the host coalescing register to
    force that vector's status block to be updated and generate an
    interrupt.  This patch adds a member to the per-interrupt structure
    that records which bit belongs to that vector.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f19af9c2cc015e42dfe4bd5c383e32066ec2801c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Sep 1 12:47:49 2009 +0000

    tg3: inline tg3_cond_int()
    
    This patch inlines the code of tg3_cond_int() into the function's only
    callsite.  This prep work makes the following patch cleaner.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 61357325f377889a1daffa14962d705dc814dd0e
Author: Stephen Hemminger <shemminger@vyatta.com>
Date:   Mon Aug 31 19:50:58 2009 +0000

    netdev: convert bulk of drivers to netdev_tx_t
    
    In a couple of cases collapse some extra code like:
       int retval = NETDEV_TX_OK;
       ...
       return retval;
    into
       return NETDEV_TX_OK;
    
    Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fc57e515a2c02599b00d252545521288dfc0158a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:03:44 2009 +0000

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

commit f3f3f27e5b4e27737f824535e6f145a3c88b976c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:03:21 2009 +0000

    tg3: Move per-int tx members to a per-int struct
    
    This patch moves the tx_prod, tx_cons, tx_pending, tx_ring, and
    tx_buffers transmit ring device members to a per-interrupt structure.
    It also adds a new transmit producer mailbox member (prodmbox) and
    converts the code to use it rather than a preprocessor constant.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 723344820aa405ac2663ab9e36fd27833d06129b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:03:01 2009 +0000

    tg3: Move per-int rx members to per-int struct
    
    This patch moves the rx_rcb, rx_rcb_mapping, and rx_rcb_ptr return ring
    device members to a per-interrupt structure.  It also adds a new return
    ring consumer mailbox register member (consmbox) and converts the code
    to use it rather than a preprocessor constant.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 898a56f8d8170c188e47ae3acb90d2ea9a585ebe
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:02:40 2009 +0000

    tg3: Move general int members to a per-int struct
    
    This patch moves the last_tag, last_tag_irq, and hw_status device
    members to a per-interrupt structure.  It also adds a new interrupt
    mailbox member (int_mbox) and converts the code to use it rather than a
    direct preprocessor constant.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 17375d25d3dcd3d4caf9456fa94f60e29d6b1146
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:02:18 2009 +0000

    tg3: Convert napi handlers to use tnapi
    
    This patch converts the napi interrupt handler functions to accept and
    use tg3_napi structures.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 09943a1819a240ff4a72f924d0038818fcdd0a90
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:01:57 2009 +0000

    tg3: Convert ISR parameter to tnapi
    
    This patch migrates the ISR parameter from struct net_device to struct
    tg3_napi.  Checkpatch complains about the existence of the preexisting
    IRQF_SAMPLE_RANDOM flag.  I've opted to keep this patch conservative and
    let it continue to exist until the flag gets officially purged from the
    kernel.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8ef0442f98850333196bc56415192e52a6267878
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:01:37 2009 +0000

    tg3: Move napi to per-int struct
    
    This patch creates a per-interrupt data structure, moves the napi
    member over, and creates a tg3 pointer back to the device structure.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 07b0173cb5d6a9d77646cd855066ebe90b9203f2
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:01:15 2009 +0000

    tg3: Cleanup interrupt setup / teardown
    
    Later patches will be adding MSIX support, which will complicate
    interrupt initialization.  This patch prepares for the integration by
    breaking out the interrupt setup and teardown code into separate
    functions and cleaning up the error return paths.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 79ed5ac7ddd5f8d6463f5a17b3575772e9896481
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:00:55 2009 +0000

    tg3: Use ext rx bds
    
    The 5717 only uses extended buffer descriptors for the jumbo producer
    ring.  Extended buffer descriptors are available on all devices that
    support a separate jumbo producer ring so make the change universal.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 21f581a5366d48d86b9ae86043fc61d44e992c0c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 14:00:25 2009 +0000

    tg3: Create a new prodring_set structure
    
    This patch migrates most of the rx producer ring variables to a new
    tg3_rx_prodring_set structure and modifies the code accordingly.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cf7a7298c4f47ab7546b933bb54ad3ea03a1daf6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 13:59:57 2009 +0000

    tg3: Create rx producer ring setup routines
    
    Later patches are going to complicate the ring initialization routines.
    This patch breaks out the setup and teardown of the rx producer rings
    into separate functions to make the code more readable.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 287be12e1774d842bff21ea0c1809c2387d7b310
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 13:58:46 2009 +0000

    tg3: Clarify rx buffer relationships
    
    This patch attempts to document the various rx buffer sizes used by the
    driver and how they relate to each other.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8f666b07ac53eeedd6c035adf6d4299f9ed0df2d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 13:58:24 2009 +0000

    tg3: Move the JUMBO_CAPABLE and SUPPORT_MSI flags
    
    This patch moves where the jumbo capable and msi support flags are
    located.  This is prep work for the addition of msix support flags.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fdb72b38c94c0ead1f78ecc8db64b832feda22c3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 13:57:12 2009 +0000

    tg3: Break out mini producer ring handling
    
    This patch separates the code that sets up the mini producer ring from
    the code that sets up the jumbo producer rings.  The 5717 asic rev
    devices do not have a mini ring, but do have a jumbo frame
    implementation similar to the 5704 and previous devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8590a603e5e20ccf49d6cf0ea71ecf5388d1f9da
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 12:29:16 2009 +0000

    tg3: Reformat NVRAM case statements
    
    This patch fixes up the NVRAM detection switch statements to conform
    to the kernel coding style.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2befdcea96fcd9a13e94373c66ea1dd7365d2a74
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 12:28:45 2009 +0000

    tg3: Add new 5785 10/100 only device ID
    
    This patch adds a new device ID for those 5785 devices that will only
    use 10/100 phys.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0a9140cff22e405fce1747a2e02d41851c36c55a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 28 12:27:50 2009 +0000

    tg3: Delay mdio bus init until fw finishes
    
    The device firmware uses the MDIO bus during early setup.  If the driver
    modifies the MDIO bus configuration while it is in use by the firmware,
    any number of bad things can happen.  This patch delays MDIO setup until
    after the firmware posts its magic signature, signifying initialization
    is complete.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f656f39801b00c3c2aa26cefbdee2775d6706d45
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:11:55 2009 +0000

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

commit 7f97a4bd47291e4ec9b9eaf63d7275ddfb498cb3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:10:03 2009 +0000

    tg3: Convert code to use PHY_IS_FET
    
    This patch converts the code to use the PHY_IS_FET flag rather than the
    ASIC revision to decide whether or not to use FET paths.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 535ef6e1124d445efbcc13b7126561dc544b0b64
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:09:36 2009 +0000

    tg3: Create MII_TG3_FET namespace
    
    Broadcom's phys come in two distinctly different register layouts.  For
    the lack of an official term to distinguish between the two formats, we
    can loosely categorize them by their fast ethernet or gigabit ethernet
    transceiver description.  This patch creates the (driver-internal) Fast
    Ethernet Transceiver (FET) namespace and converts the 5906 EPHY
    definitions over.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bb85fbb6a98d8edab81599913559c7ff0a963984
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:09:07 2009 +0000

    tg3: Tune 5785 clock switching
    
    This patch tunes the timeouts the CPMU uses to decide when to switch
    from the clocks output by the PHY to internal clock sources.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5e7ccf2003e6a9c35b5aa24953ba5009a1a8b653
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:08:42 2009 +0000

    tg3: Add 57788, remove 57720
    
    This patch adds support for the 57788 and removes support for the 57720
    which was never released.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e7126997342560533317d8467e8516119ebcbd21
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:08:16 2009 +0000

    tg3: Preserve PCIe MPS setting for new devs
    
    Most older tg3 devices only supported a PCIe maximum payload size of
    128 bytes.  More recent devices bump this limit up to 256 bytes
    though.  This patch modifies the code so that the MPS limit is only
    enforced on those devices that only allow the 128 byte setting.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 29ea095fb727ac48228ff2d1af484c27bf1dcbd4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:07:54 2009 +0000

    tg3: Fix TSO test against wrong flags var
    
    Julia Lawall discovered that the TG3_FLG2_TSO_CAPABLE flag was being
    compared against the wrong flags device member.  This patch implements
    the fix.
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 255ca311b650caece3ec4f78b88ef298664d561f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:07:27 2009 +0000

    tg3: Prevent tx BD corruption
    
    This patch prevents a tx BD corruption bug by preventing the device from
    powering down the PLL from L1 if the link speed is 10Mbps or 100Mbps.
    
    The same bits are also used to prevent a system hang during chip reset
    resulting from a complicated set of events that ultimately leads to
    PCIe block register corruption.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 521e6b90dd3f0392062845d7ef13e6e41bb99d8a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Tue Aug 25 10:06:01 2009 +0000

    tg3: Fix 57780 asic rev PCIe link receiver errors
    
    This patch fixes some PCIe link receiver errors by decreasing the internal
    electrical idle timeout.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Reviewed-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 042a53a9e437feaf2230dd2cadcecfae9c7bfe05
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Fri Jun 5 04:04:16 2009 +0000

    net: skb_shared_info optimization
    
    skb_dma_unmap() is quite expensive for small packets,
    because we use two different cache lines from skb_shared_info.
    
    One to access nr_frags, one to access dma_maps[0]
    
    Instead of dma_maps being an array of MAX_SKB_FRAGS + 1 elements,
    let dma_head alone in a new dma_head field, close to nr_frags,
    to reduce cache lines misses.
    
    Tested on my dev machine (bnx2 & tg3 adapters), nice speedup !
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cdd0db058d64f2619b08e7d098ee0014aa0a5bc1
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Thu May 28 00:00:41 2009 +0000

    net: dont update dev->trans_start
    
    Second round of drivers for Gb cards (and NIU one I forgot in the 10GB round)
    
    Now that core network takes care of trans_start updates, dont do it
    in drivers themselves, if possible. Drivers can avoid one cache miss
    (on dev->trans_start) in their start_xmit() handler.
    
    Exceptions are NETIF_F_LLTX drivers
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bb9e63e27117b469a151c61fb0045a8ec4cced5d
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 07:13:31 2009 +0000

    tg3: Update version to 3.99
    
    This patch updates the tg3 version to 3.99.
    
    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 daba2a631d2b7831b6a021b36d61314a9153526e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 06:58:52 2009 +0000

    tg3: Restore LAA sooner in shutdown sequence
    
    After a shutdown reset, the LAA needs to be restored before posting the
    post-reset signature in shared memory.  If the LAA is not restored
    before then, the bootcode will assume the factory default MAC address
    and WOL will not work with the LAA.
    
    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 9cf74ebb634fe79587cf9a1d5ff971391dd12e1b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 06:58:27 2009 +0000

    tg3: Limit CLKREQ fix to A[01] of 57780 asic rev
    
    This patch restricts the CLKREQ bugfix to the A0 and A1 revisions
    of 57780 ASIC rev chips.
    
    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 8d519ab2866c92f5d722085492a124f016f601aa
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 06:58:01 2009 +0000

    tg3: Allow 5761 WOL and LED fixes to 5761S too
    
    The 5761 WOL and LED fixes used the PCI device ID to as the activation
    key.  The 5761S requires the same process.
    
    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 33466d938f43ab65312466ba5472b9c6ee200cce
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 06:57:41 2009 +0000

    tg3: Prevent send BD corruption
    
    On rare occasions, send BD corruptions can occur.  This patch
    fixes the problem by increasing the L1 entry threshold to 4
    milliseconds.
    
    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 df259d8cba7d7880dc04d34c7a6e0ce15fbc9644
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 06:57:14 2009 +0000

    tg3: Handle NVRAM absent cases
    
    Some 57780 ASIC revision parts do not have NVRAM.  Code the driver so
    that it is tolerant of this configuration.
    
    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 624f8e5082efd0348ccf7e3d3f4bfc41efead26c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 06:55:01 2009 +0000

    tg3: Allow screaming interrupt detection
    
    The tg3 driver's ISR is coded to accept interrupts as its own if the
    status block tag does not equal the last tag the driver has seen.  The
    last_tag field is updated from tg3_poll.  In a screaming interrupt
    situation from another device sharing tg3's IRQ, tg3_poll does not get
    a chance to be called, so the last_tag will always be out of sync with
    the status block tag.  Consequently, the driver will continually
    declare the screaming interrupts as its own, thus thwarting the
    screaming interrupt detection logic.
    
    This patch solves the problem by creating a new last_irq_tag member and
    recording the status block tag in the ISR.  The ISR then checks the
    last_irq_tag for interrupt ownership.
    
    Many thanks to John Marvin for the detailed bug report and analysis and
    Michael Chan for the bugfix.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Tested-by: John Marvin <jsm@fc.hp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 62cedd11f63c99efd2962fb69763a09e2778f6e6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Apr 20 14:52:29 2009 -0700

    tg3: Fix SEEPROM accesses
    
    The recent NVRAM patches sanitized how the driver deals with NVRAM
    data, but they failed to bring the SEEPROM interfaces inline with
    the new strategy.  This patch brings the SEEPROM interfaces up to date.
    This patch also reverts commit 0d489ffb76de0fe804cf06a9d4d11fa7342d74b9
    ("tg3: fix big endian MAC address collection failure").
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Tested-by: Robin Holt <holt@sgi.com>
    Tested-by: James Bottomley <james.bottomley@HansenPartnership.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0d489ffb76de0fe804cf06a9d4d11fa7342d74b9
Author: James Bottomley <James.Bottomley@HansenPartnership.com>
Date:   Mon Apr 13 14:31:51 2009 -0700

    tg3: fix big endian MAC address collection failure
    
    We noticed on parisc that our broadcoms all swapped MAC addresses going
    from 2.6.29 to 2.6.30-rc1:
    
    Apr 11 07:48:24 ion kernel: eth0: Tigon3 [partno(BCM95700A6) rev 0105] (PCI:66MHz:64-bit) MAC address 00:30:6e:4b:15:59
    Apr 13 07:34:34 ion kernel: eth0: Tigon3 [partno(BCM95700A6) rev 0105] (PCI:66MHz:64-bit) MAC address 00:00:59:15:4b:6e
    
    The problem patch is:
    
    commit 6d348f2c1e0bb1cf7a494b51fc921095ead3f6ae
    Author: Matt Carlson <mcarlson@broadcom.com>
    Date:   Wed Feb 25 14:25:52 2009 +0000
    
        tg3: Eliminate tg3_nvram_read_swab()
    
    With the root cause being the use of memcpy to set the mac address:
    
       memcpy(&dev->dev_addr[0], ((char *)&hi) + 2, 2);
       memcpy(&dev->dev_addr[2], (char *)&lo, sizeof(lo));
    
    This might work on little endian machines, but it can't on big endian
    ones.  You have to use the original setting mechanism to be correct on
    all architectures.
    
    The attached patch fixes parisc.
    
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 284901a90a9e0b812ca3f5f852cbbfb60d10249d
Author: Yang Hongyang <yanghy@cn.fujitsu.com>
Date:   Mon Apr 6 19:01:15 2009 -0700

    dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
    
    Replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
    
    Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 50cf156af7dc68a44409bef636585ef88ebbab34
Author: Yang Hongyang <yanghy@cn.fujitsu.com>
Date:   Mon Apr 6 19:01:14 2009 -0700

    dma-mapping: replace all DMA_40BIT_MASK macro with DMA_BIT_MASK(40)
    
    Replace all DMA_40BIT_MASK macro with DMA_BIT_MASK(40)
    
    Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 6a35528a8346f6e6fd32ed7e51f04d1fa4ca2c01
Author: Yang Hongyang <yanghy@cn.fujitsu.com>
Date:   Mon Apr 6 19:01:13 2009 -0700

    dma-mapping: replace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64)
    
    Replace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64)
    
    Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 811158b147a503fbdf9773224004ffd32002d1fe
Merge: 4e76c5c b26e0ed
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Fri Apr 3 15:24:35 2009 -0700

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)
      trivial: Update my email address
      trivial: NULL noise: drivers/mtd/tests/mtd_*test.c
      trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h
      trivial: Fix misspelling of "Celsius".
      trivial: remove unused variable 'path' in alloc_file()
      trivial: fix a pdlfush -> pdflush typo in comment
      trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL
      trivial: wusb: Storage class should be before const qualifier
      trivial: drivers/char/bsr.c: Storage class should be before const qualifier
      trivial: h8300: Storage class should be before const qualifier
      trivial: fix where cgroup documentation is not correctly referred to
      trivial: Give the right path in Documentation example
      trivial: MTD: remove EOL from MODULE_DESCRIPTION
      trivial: Fix typo in bio_split()'s documentation
      trivial: PWM: fix of #endif comment
      trivial: fix typos/grammar errors in Kconfig texts
      trivial: Fix misspelling of firmware
      trivial: cgroups: documentation typo and spelling corrections
      trivial: Update contact info for Jochen Hein
      trivial: fix typo "resgister" -> "register"
      ...

commit 877d03105d04b2c13e241130277fa69c8d2564f0
Author: Nick Andrew <nick@nick-andrew.net>
Date:   Mon Jan 26 11:06:57 2009 +0100

    trivial: Fix misspelling of firmware
    
    Fix misspelling of firmware.
    
    Signed-off-by: Nick Andrew <nick@nick-andrew.net>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>

commit 1383bdb98c01bbd28d72336d1bf614ce79114d29
Author: David S. Miller <davem@davemloft.net>
Date:   Sun Mar 29 01:39:49 2009 -0700

    tg3: Add GRO support.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0d2a5068aaa238eba971784585e44130db6d4759
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:40:42 2009 +0000

    tg3: Update copyright and version
    
    This patch updates the copyright to 2009 and updates the version number
    to 3.98.
    
    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 a6f6cb1cf8ba54efdbbbf61b5b4345b0246da42f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:27:43 2009 +0000

    tg3: Add version reporting for hardware selfboot
    
    This patch adds version reporting for hardware selfboot.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7fd764455a13f4d9b37c9b908f07d0758f11d3c5
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:27:20 2009 +0000

    tg3: Add DASH firmware version reporting
    
    This patch adds code to report the DASH firmware version.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ff3a7cb25217bddcefd20e72af08a65481db4096
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:26:58 2009 +0000

    tg3: Add legacy bootcode version decoding
    
    This patch adds code to obtain the bootcode version for versions
    of bootcode that do not use the new method.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit acd9c119cc663860fff4f1445ed0f87d82378d99
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:26:33 2009 +0000

    tg3: Refactor firmware version routines
    
    This patch reorganizes the firmware version routines in preparation for
    the following patches.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6d348f2c1e0bb1cf7a494b51fc921095ead3f6ae
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:25:52 2009 +0000

    tg3: Eliminate tg3_nvram_read_swab()
    
    The remaining uses of tg3_nvram_read_swab() either intended to read the
    data from NVRAM exactly as tg3_nvram_read_be32() did or hide deeper
    interpretations of the data.  For the former case, a direct replacement
    of tg3_nvram_read_swab() with tg3_nvram_read_be32() is in order.  For
    the latter case, we remove tg3_nvram_read_swab() and document what the
    code is really doing.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a9dc529dcd5c541c51cb2ba09bff99580361c576
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:25:30 2009 +0000

    tg3: Correct NVRAM stream endian notations
    
    Any software requesting NVRAM data as it exists on NVRAM is necessarily
    requesting that the results be returned as a bytestream.  A bytestream
    data read in from the device can also be thought to be in big endian
    format.  Therefore, all the LE notations in the driver are mislabeled.
    This patch converts all LE notations to BE notations, carefully
    evaluating the surrounding code in the process.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e4f341103e4a2b35f56a0f89802f1b1448e8d04b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:25:00 2009 +0000

    tg3: Invert nvram_read() and nvram_read_swab()
    
    This patch removes the blind byteswap of NVRAM data as it is read in.
    To preserve the logic at the call sites, this patch also inverts every
    call to tg3_nvram_read() and tg3_nvram_read_swab().  The call swap gets
    confusing within tg3_nvram_read_le() (LE is a misnomer), but the reader
    should be able to convince himself / herself that the resulting behavior
    is still unchanged.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ffbcfed441b9ba74ce77f215eed6925f6a0b82a3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:24:28 2009 +0000

    tg3: Eliminate nvram routine forward declarations
    
    This patch moves all NVRAM routines earlier in the source file to
    eliminate forward declarations.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 844b3eed8a9efffa4225c811b989c8ff41691a78
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:23:56 2009 +0000

    tg3: Refine tg3_vlan_rx_register()
    
    tg3_vlan_rx_register() touches the hardware if netif_running() returns
    false.  This patch fixes the problem.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7e5856bd9644e2299adbf5d0a8916f9cc56f1f36
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:23:01 2009 +0000

    tg3: Update ethtool set_settings error checks
    
    The ethtool interface has acquired some new enumerations since the
    tg3 driver's tg3_set_settings() error checking code was written.  The
    error checking code is no longer complete.  This patch rewrites the
    error checking so that it is future-proofed.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f7b493e02101bb5a0a69a91a8b4b7b002cd60eaf
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:21:52 2009 +0000

    tg3: Drop non-VLAN rx pkts larger than the MTU
    
    The hardware's MTU is configured so that it will accept packets whose
    VLAN tag is left inline.  This means that the hardware will also accept
    other packets larger than the desired MTU size.  This patch checks for
    and discards packets that are larger than the requested MTU but are not
    VLAN tagged frames.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a6435f3a53746a0eb687a9f636cf1941f35f935e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Wed Feb 25 14:21:20 2009 +0000

    tg3: Fix 5906 link problems
    
    Commit 6833c043f9fc03696fde623914c4a0277df2a0bc introduced the phy
    auto-powerdown capability.  While the APD feature only works for 5761
    and 5784 asic revisions, the (harmless portion of the) code was applied
    to all 5705 and newer devices.  However, the 5906 phy departs from the
    usual design.  This commit was interfering with the 5906's ability to
    negotiate link against some switches.  This patch corrects the problem.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e70049b9e74267dd47e1ffa62302073487afcb48
Merge: d18921a f7e603a
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Feb 24 03:50:29 2009 -0800

    Merge branch 'master' of /home/davem/src/GIT/linux-2.6/

commit f72b534961ac38dde17824d7693292eeaadf10e8
Author: Roel Kluin <roel.kluin@gmail.com>
Date:   Wed Feb 18 17:42:42 2009 -0800

    TG3: &&/|| confusion
    
    phyid Can't be both TG3_PHY_OUI_1 and TG3_PHY_OUI_2 and TG3_PHY_OUI_3.
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Acked-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5e30589521518bff36fd2638b3c3d69679c50436
Merge: ac178ef d2f8d7e
Author: David S. Miller <davem@davemloft.net>
Date:   Sat Feb 14 23:12:00 2009 -0800

    Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
    
    Conflicts:
    	drivers/net/wireless/iwlwifi/iwl-agn.c
    	drivers/net/wireless/iwlwifi/iwl3945-base.c

commit d4675b52a933831d4901217564cba5a434ddd922
Author: Roel Kluin <roel.kluin@gmail.com>
Date:   Thu Feb 12 16:33:27 2009 -0800

    TG3: limit reaches -1
    
    With while (limit--) { ... } limit reaches -1, so 0 means success.
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3d16543d3235fefca351c10b30c1cca6536f2569
Author: Francois Romieu <romieu@fr.zoreil.com>
Date:   Mon Jan 19 16:56:50 2009 -0800

    tg3: remove extra casting
    
    Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 288379f050284087578b77e04f040b57db3db3f8
Author: Ben Hutchings <bhutchings@solarflare.com>
Date:   Mon Jan 19 16:43:59 2009 -0800

    net: Remove redundant NAPI functions
    
    Following the removal of the unused struct net_device * parameter from
    the NAPI functions named *netif_rx_* in commit 908a7a1, they are
    exactly equivalent to the corresponding *napi_* functions and are
    therefore redundant.
    
    Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9e9fd12dc0679643c191fc9795a3021807e77de4
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Jan 19 16:57:45 2009 -0800

    tg3: Fix firmware loading
    
    This patch modifies how the tg3 driver handles device firmware.
    
    The patch starts by consolidating David Woodhouse's earlier patch under
    the same name.  Specifically, the patch moves the request_firmware call
    into a separate tg3_request_firmware() function and calls that function
    from tg3_open() rather than tg3_init_one().
    
    The patch then goes on to limit the number of devices that will make
    request_firmware calls.  The original firmware patch unnecessarily
    requested TSO firmware for devices that did not need it.  This patch
    reduces the set of devices making TSO firmware patches to approximately
    the following device set : 5703, 5704, and 5705.
    
    Finally, the patch reduces the effects of a request_firmware() failure.
    For those devices that are requesting TSO firmware, the driver will turn
    off the TSO capability.  If TSO firmware becomes available at a later
    time, the device can be closed and then opened again to reacquire the
    TSO capability.
    
    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 077f849de42e58172e25ccb24df4c1a13e82420c
Author: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Date:   Sun Jan 4 16:11:25 2009 -0800

    firmware: convert tg3 driver to request_firmware()
    
    Firmware blob looks like this...
            u8 firmware_major
            u8 firmware_minor
            u8 firmware_fix
            u8 pad
            __be32 start_address
            __be32 length (total, including BSS sections to be zeroed)
            data... (in __be32 words, which is native for the firmware)
    
    Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 908a7a16b852ffd618a9127be8d62432182d81b4
Author: Neil Horman <nhorman@tuxdriver.com>
Date:   Mon Dec 22 20:43:12 2008 -0800

    net: Remove unused netdev arg from some NAPI interfaces.
    
    When the napi api was changed to separate its 1:1 binding to the net_device
    struct, the netif_rx_[prep|schedule|complete] api failed to remove the now
    vestigual net_device structure parameter.  This patch cleans up that api by
    properly removing it..
    
    Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d3d317092b58a6df1d31a4ca90cdb9d2bd4ebffa
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Dec 21 20:21:52 2008 -0800

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

commit aa10f27d99410cff9145bf91b6efc884c7a4871c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Dec 21 20:21:18 2008 -0800

    tg3: tg3.h cleanups
    
    This patch cleans up the tg3 header file by removing the preprocessor
    definitions for standard PCI configuration space registers.  The driver
    should be using the standard definitions when needed.  The patch
    continues by removing redundant PHY related definitions and reorganizes
    some of the remaining entries.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 69fc405318967c7913e5b55cf3906250a26b49d0
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Dec 21 20:19:57 2008 -0800

    tg3: Remove unused cfgspc device members
    
    This patch removes the pci_bist and pci_hdr_type members from the
    device structure and removes the code that references them.  They are
    not really used.
    
    The patch rounds out the changes by moving the pci_cmd member to plug
    a structure hole that would have been created.  On 32-bit systems, this
    movement removes a subsequent structure hole later in the structure. On
    64-bit systems though, the movement merely consolidates two holes into
    one larger hole.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 027455adacdc142cc018e555ce391014fa227e70
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Dec 21 20:19:30 2008 -0800

    tg3: Cleanup IPV6 LSO
    
    This patch attempts to make the relationship between IPV6 checksum
    offload and IPV6 LSO more obvious.  The patch also toggles a bit
    needed for IPV6 LSO on 5785 and 57780 devices.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2023276ebf074a01eb56f38ed4d04deef1deee67
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun Dec 21 20:18:56 2008 -0800

    tg3: WOL fixes
    
    The first hunk of this patch inverts a flag that was accidentally
    toggled as part of commit 0a459aac9d151c2e36ec65723b9b845b24c5cbc3
    ("tg3: Allow WOL for phylib controlled Broadcom phys").
    
    The second hunk of the patch removes the call to
    device_may_wakeup() in the 5906 config detection path.  At the
    point of the call, the driver shouldn't be querying for WOL
    capability.  It should be detecting and setting it.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bc02ff95fe4ebd3e5ee7455c0aa6f76ebe39ebca
Author: Steve Glendinning <steve.glendinning@smsc.com>
Date:   Tue Dec 16 02:00:48 2008 -0800

    net: Refactor full duplex flow control resolution
    
    These 4 drivers have identical full duplex flow control resolution
    functions.  This patch changes them all to use one common function.
    
    The function in question decides whether a device should enable TX and
    RX flow control in a standard way (IEEE 802.3-2005 table 28B-3), so this
    should also be useful for other drivers.
    
    Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e18ce3465477502108187c6c08b6423fb784a313
Author: Steve Glendinning <steve.glendinning@smsc.com>
Date:   Tue Dec 16 02:00:00 2008 -0800

    net: Move flow control definitions to mii.h
    
    flags used within drivers for indicating tx and rx flow control are
    defined in 4 drivers (and probably more), move these constants to mii.h.
    
    The 3 SMSC drivers use the same constants (FLOW_CTRL_TX), but TG3 uses
    TG3_FLOW_CTRL_TX, so this patch also renames the constants within TG3.
    
    Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e245a3855eec42127b722ed9688a49ec3f3c9a27
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:23:26 2008 -0800

    tg3: Update version to 3.96
    
    This patch updates the version number to 3.96.
    
    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 321d32a052d6b5f71111ebad4fbebea5577f8974
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:22:19 2008 -0800

    tg3: Add 57780 support
    
    This patch adds support for the 57780 ASIC revision.
    
    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 22435849a6dcde2ce10d1870aba461a54e347fe3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:21:13 2008 -0800

    tg3: Allow GPHY powerdown on 5761
    
    The ENABLE_APE flag tells the driver whether or not the device has an
    Application Processing Engine (APE).  The APE does not need the PHY to
    be powered unless it is running management firmware.  For backwards
    compatibility, management firmware will still set the ENABLE_ASF bit.
    Consequently, there is no reason to consider the ENABLE_APE flag when
    deciding whether or not to power down the 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 d5fe488a7b59e41b98b91137805159466b7b49c2
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:20:32 2008 -0800

    tg3: Embrace pci_ioremap_bar()
    
    Per Dave Miller's suggestion, replace the remaining ioremap_nocache()
    call with pci_ioremap_bar().  Remove the two IORESOURCE_MEM checks as
    they are redundant.
    
    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 dfe00d7d890134f9cafda49e3e60e6ce27af91ed
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:19:41 2008 -0800

    tg3: Extract FW ver from alt NVRAM formats
    
    This patch extracts the bootcode firmware version from the alternate
    selfboot patch NVRAM format.  This format is used on the 5784, 5761 and
    some newer 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 6833c043f9fc03696fde623914c4a0277df2a0bc
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:18:59 2008 -0800

    tg3: Enable GPHY APD on select devices
    
    GPHY Autopowerdown (APD) is a way to save power when energy is not
    detected on the wire.  At the moment, only the 5784 and 5761 are
    capable of enabling this 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 5e7dfd0fb94abed04f59481d1ce0cc06a892048a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:18:16 2008 -0800

    tg3: Prevent corruption at 10 / 100Mbps w CLKREQ
    
    This patch disables CLKREQ at 10Mbps and 100Mbps to workaround a TX BD
    corruption issue.  This problem only affects the 5784 and 5761 (and
    57780 AX) ASIC revisions.
    
    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 52f4490c3b6dcb1e8dec7ff9f1c35f09bd7c136f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:17:04 2008 -0800

    tg3: Qualify use of tp->pcix_cap
    
    This patch makes sure the device is a PCIX device before attempting to
    use the pcix_cap device structure member.  This is prep work for the
    following 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 ad8292681a629cdb16bb19ee7d721b457c32a23a
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Nov 21 17:16:16 2008 -0800

    tg3: Use NET_IP_ALIGN
    
    This patch replaces hardcoded 2's with the NET_IP_ALIGN constant or
    TG3_RAW_IP_ALIGN where appropriate.  Some platforms can redefine the
    NET_IP_ALIGN definition to zero if unaligned DMA transfers cost more
    than the IP header alignment gains.  This patch represents a
    performance improvement when using the 5701 on these platforms.
    The copy path can be avoided.
    
    TG3_RAW_IP_ALIGN is used in cases where we always want to align the
    IP header on dword boundaries.
    
    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 008298231abbeb91bc7be9e8b078607b816d1a4a
Author: Stephen Hemminger <shemminger@vyatta.com>
Date:   Thu Nov 20 20:14:53 2008 -0800

    netdev: add more functions to netdevice ops
    
    This patch moves neigh_setup and hard_start_xmit into the network device ops
    structure. For bisection, fix all the previously converted drivers as well.
    Bonding driver took the biggest hit on this.
    
    Added a prefetch of the hard_start_xmit in the fast path to try and reduce
    any impact this would have.
    
    Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7c7d64b8c00bcf9519e5ec38368bc7afdc185c51
Author: Stephen Hemminger <shemminger@vyatta.com>
Date:   Wed Nov 19 22:25:36 2008 -0800

    tg3: convert to net_device_ops
    
    Convert this driver to network device ops.
    
    Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fb28ad35906af2f042c94e2f9c0f898ef9acfa37
Author: Kay Sievers <kay.sievers@vrfy.org>
Date:   Mon Nov 10 13:55:14 2008 -0800

    net: struct device - replace bus_id with dev_name(), dev_set_name()
    
    Acked-by: Marcel Holtmann <marcel@holtmann.org>
    Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit babcda74e9d96bb58fd9c6c5112dbdbff169e695
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Nov 3 21:11:17 2008 -0800

    drivers/net: Kill now superfluous ->last_rx stores.
    
    The generic packet receive code takes care of setting
    netdev->last_rx when necessary, for the sake of the
    bonding ARP monitor.
    
    Drivers need not do it any more.
    
    Some cases had to be skipped over because the drivers
    were making use of the ->last_rx value themselves.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fa228b3fcb724ce2281a61737e09a8afa4fed542
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:58:53 2008 -0800

    tg3: Update version to 3.95
    
    This patch updates the version to 3.95.
    
    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 fcb389dfd842be54545cb436b3437f07da10115c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:55:44 2008 -0800

    tg3: 5785 enhancements
    
    This patch refines support for the 5785 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 9c61d6bc56bf0a5fb1ebfcf4c168cc5ce30e153b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:54:56 2008 -0800

    tg3: Refine phylib support
    
    This patch refines the phylib support in the tg3 driver.  The patch does
    the following things :
    
    * Rename tg3_mdio_config() to tg3_mdio_config_5785().  The 5785 will be
      the only device that will use it so the name might as well reflect
      that.
    * Fix a memory leak if mdiobus_register() fails.
    * Add code to deal with phy device detection failures.
    * Add code to correct the supported list of phy features based on the
      MAC <=> PHY interface.
    
    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 0a459aac9d151c2e36ec65723b9b845b24c5cbc3
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:54:15 2008 -0800

    tg3: Allow WOL for phylib controlled Broadcom phys
    
    This patch allows WOL to be enabled for Broadcom phys under phylib
    control.  The only exception is the AC131, which has a completely
    different register set.
    
    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 05ac4cb7dff4515447dce6e9a56c4de6b7e426d5
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:53:46 2008 -0800

    tg3: Refine power management and WOL code
    
    Commit 12dac0756d357325b107fe6ec24921ec38661839 ("tg3: adapt tg3 to
    use reworked PCI PM code") introduced the new PCI PM API to the tg3
    driver.  The patch was understandably conservative, so this patch
    elaborates on that work.
    
    The patch starts by creating a single point in tg3_set_power_state()
    to decide whether or not to enable WOL.  The rest of the code in
    tg3_set_power_state() was then pivoted to use the result of this
    decision.
    
    The patch then makes sure the device is allowed to wakeup before
    reporting whether or not WOL is currently enabled.  The final hunks of
    the patch consolidate where the WOL capability and WOL enabled flags
    are set to a single location.
    
    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 df59c9403557397aafbe291533d113b752da7661
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:52:56 2008 -0800

    tg3: Move phylib report to end of tg3_init_one
    
    Currently, phylib reports appear with a eth%d prefix.  Move the line
    after register_netdev() and place it alongside the other informative
    messages.  Update nearby informative messages 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 b2b98d4acc58a6f36b731e666c6ebd901cd6a27e
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:52:32 2008 -0800

    tg3: Do not enable APE on bcm5700
    
    With older versions of the NVRAM format, the driver may mistakenly
    determine that APE is enabled.  Make sure this doesn't happen by
    restricting the ENABLE_APE check to devices known to have more
    recent NVRAM image 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 bcb37f6cb57e565e7bd342272652c3a50cf88761
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:52:09 2008 -0800

    tg3: Reclaim TG3_FLG3_5761_5784_AX_FIXES flag
    
    This patch reclaims the TG3_FLG3_5761_5784_AX_FIXES flag.  It only
    used twice in non-fast paths.  This patch also consolidates some other
    places where specific 5784 AX chip revisions can be generalized.
    
    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 3f007891da0ad3d9192e9aa13ce4e3aaf20c33fa
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:51:36 2008 -0800

    tg3: Preserve LAA when device control is released
    
    This patch moves the __tg3_set_mac_addr() function earlier in the file
    listing, to avoid a function prototype, and calls the function to
    restore the LAA after a driver unload chip reset.  With this code in
    place, the administrator can wake the machine using the LAA.
    
    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 b2aee1545dc3c05c8d5cf116de1e92907e98009b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:51:11 2008 -0800

    tg3: Preserve DASH connectivity when WOL enabled
    
    DASH firmware runs on the APE side of the chip, but it requires a few MAC
    to be programmed correctly.
    
    When WOL is enabled and management firmware is disabled, incoming
    packets are evaluated and discarded at the chip's rule processor.
    When management firmware is enabled, the hardware must be informed that
    there are agents further up the stack that still use the incoming
    frames.  Normally management firmware will configure the MAC correctly
    on its own, but there can be cases where the setting could get clobbered
    by the driver.  The first hunk of this patch preserves this setting.
    
    The second hunk of this patch wipes out the driver present signature of
    the APE memory space.  By doing so, the DASH firmware can assume
    driver absent behavior.
    
    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 63532394af307795ea637a283bd1fd057f5dfcea
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:49:57 2008 -0800

    tg3: Use pci_ioremap_bar()
    
    This patch replaces the existing APE register mapping code with a call
    to pci_ioremap_bar().  The code that maps the main device register space
    did not undergo a similar change because the information derived from
    the pci_resource_start() and pci_resource_len() is still used to
    populate the (optional) mem_start and mem_end netdevice members.
    Replace hardcoded constants where appropriate.
    
    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 c88e668b52c8cd8bc55b6734c7dfbb0cb005d445
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Nov 3 16:49:18 2008 -0800

    tg3: Add 5761S support
    
    This patch adds support for the 5761S chip variants.
    
    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 e174961ca1a0b28f7abf0be47973ad57cb74e5f0
Author: Johannes Berg <johannes@sipsolutions.net>
Date:   Mon Oct 27 15:59:26 2008 -0700

    net: convert print_mac to %pM
    
    This converts pretty much everything to print_mac. There were
    a few things that had conflicts which I have just dropped for
    now, no harm done.
    
    I've built an allyesconfig with this and looked at the files
    that weren't built very carefully, but it's a huge patch.
    
    Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 298cf9beb9679522de995e249eccbd82f7c51999
Author: Lennert Buytenhek <buytenh@marvell.com>
Date:   Wed Oct 8 16:29:57 2008 -0700

    phylib: move to dynamic allocation of struct mii_bus
    
    This patch introduces mdiobus_alloc() and mdiobus_free(), and
    makes all mdio bus drivers use these functions to allocate their
    struct mii_bus'es dynamically.
    
    Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 18ee49ddb0d242ed1d0e273038d5e4f6de7379d3
Author: Lennert Buytenhek <buytenh@wantstofly.org>
Date:   Wed Oct 1 15:41:33 2008 +0000

    phylib: rename mii_bus::dev to mii_bus::parent
    
    In preparation of giving mii_bus objects a device tree presence of
    their own, rename struct mii_bus's ->dev argument to ->parent, since
    having a 'struct device *dev' that points to our parent device
    conflicts with introducing a 'struct device dev' representing our own
    device.
    
    Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 638266f7e879e34de4a4635049c15f5a58505e75
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Sep 11 15:45:19 2008 -0700

    tg3: Fix DMA mapping leak in tigon3_dma_hwbug_workaround().
    
    Noticed by Michael Chan.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 90079ce89aa65e17f36ac2b09110720c51d874f4
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Sep 11 04:52:51 2008 -0700

    tg3: Use SKB DMA helper functions for TX.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 23197916c447a1623d196e6547781180905f0bb2
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 15 14:11:19 2008 -0700

    tg3: Update version to 3.94
    
    This patch updates the version number to 3.94.
    
    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 816f8b86621000fc82e16ae5f172164de761d5eb
Author: Stefan Buehler <stbuehler@web.de>
Date:   Fri Aug 15 14:10:54 2008 -0700

    tg3: fix 64 bit counter for ethtool stats
    
    Ethtool stats are 64-bits in length.  net_device_stats members are
    unsigned long types.  When gathering information for
    a get_ethtool_stats call, the driver will call a driver-private,
    inlined get_stat64() function, which returns an unsigned long value.
    This call will inadvertently mask off the upper 32-bits of a stat on
    32-bit machines.
    
    This patch defines a new get_estat() inline function and modifies the
    ESTAT_ADD() macro to use it.
    
    Signed-off-by: Stefan Buehler <stbuehler@web.de>
    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 4ba526ced990f4d61ee8d65fe8a6f0745e8e455c
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 15 14:10:04 2008 -0700

    tg3: Fix firmware event timeouts
    
    The git commit 7c5026aa9b81dd45df8d3f4e0be73e485976a8b6 ("tg3: Add
    link state reporting to UMP firmware") introduced code that waits for
    previous firmware events to be serviced before attempting to submit a
    new event.  Unfortunately that patch contained a bug that cause the
    driver to wait 2.5 seconds, rather than 2.5 milliseconds as intended.
    This patch fixes that bug.
    
    This bug revealed that not all firmware versions service driver events
    though.  Since we do not know which versions of the firmware do and don't
    service these events, the driver needs some way to minimize the effects
    of the delay.  This patch solves the problem by recording a jiffies
    timestamp when it submits an event to the hardware.  If the jiffies
    counter shows that 2.5 milliseconds have already passed, a wait is not
    needed and the driver can proceed to submit a new event.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bc7959b2cbb57393b625b423c73e6fd07610257f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 15 14:08:55 2008 -0700

    tg3: Turn off ASF "driver alive" heartbeats for APE
    
    The ENABLE_ASF flag is set when DASH is enabled on the NIC, but DASH
    does not run on the RX CPU.  Instead it runs on the APE.
    Consequently, the driver does not need to send "driver alive" updates
    to the RX CPU when the APE is present.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3bda12589646caa22b2ed4ef7cf82d17ea59d7a6
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 15 14:08:22 2008 -0700

    tg3: Preserve register settings for DASH
    
    Broadcom's DASH (Desktop and mobile Architecture for System Hardware)
    implementation requires that the driver preserve particular register
    settings.  If the driver does not preserve them, communication with
    the DASH firmware will be lost.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 731fd79c133dc04cabee17ecfa7661189a8df5c8
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 15 14:07:51 2008 -0700

    tg3: Refine APE status check
    
    Recently, more status bits have been added to the APE status register.
    This patch refines the status register check so that the driver can
    send more events than it would have otherwise.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 77b483f132ba25edf4ef455dd87a91ab7bbf4170
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Fri Aug 15 14:07:24 2008 -0700

    tg3: Add APE register access locking
    
    If the driver resets the chip while the APE is performing a register
    access, that register access will never complete and the APE will hang
    indefinitely.  To prevent this race condition, the driver must acquire
    an APE mutex before resetting the chip.  The APE will not attempt a
    register access until it acquires this lock.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2f751b67a8be698cec52f786910ef4f0beffe9a7
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Aug 4 23:17:34 2008 -0700

    tg3: Fix 'scheduling while atomic' errors
    
    This patch fixes the 'scheduling while atomic' errors introduced by
    commit 12dac0756d357325b107fe6ec24921ec38661839 ("tg3: adapt tg3 to
    use reworked PCI PM code").
    
    The first hunk of the patch removes an unnecessary
    tg3_set_power_state() call.  The chip will already be in the D0 state
    either due to a chip reset or through a previous call to
    tg3_set_power_state().
    
    The second hunk of the patch moves the tg3_set_power_state() call
    outside the critical section guarded by tg3_full_lock() and
    tg3_full_unlock() functions.  The power state of the device is and
    should be outside the lock's domain and all other
    tg3_set_power_state() calls support this.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 12dac0756d357325b107fe6ec24921ec38661839
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Wed Jul 30 16:37:33 2008 -0700

    tg3: adapt tg3 to use reworked PCI PM code
    
    Adapt the tg3 driver to use the reworked PCI PM and make it use the
    exported PCI PM core functions instead of accessing the PCI PM registers
    directly by itself.
    
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 65b53e4cc90e59936733b3b95b9451d2ca47528d
Merge: 788c0a5 2e761e0
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Jun 10 02:22:26 2008 -0700

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
    
    Conflicts:
    
    	drivers/net/tg3.c
    	drivers/net/wireless/rt2x00/rt2x00dev.c
    	net/mac80211/ieee80211_i.h

commit 1b84d9462a93ccfa99f725aad744ab4d1af8402b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Jun 9 15:41:33 2008 -0700

    tg3: Update version to 3.92.1
    
    This patch increments the version to 3.92.1.
    
    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 5f0c4a3cb6fda7c505f8c916b54ea90205feed68
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Jun 9 15:41:12 2008 -0700

    tg3: Fix 5761 WOL
    
    On 5761 non-e devices, two problems prevent the administrator from
    overriding the WOL settings in the device's NVRAM.
    
    The first problem is that GPIO 0 and GPIO 2 have been swapped.  This
    change prevented the administrator from turning on WOL when it is
    disabled in NVRAM.  The fix is to add a new path for the 5761 that
    swaps the two GPIOs in the code as well.
    
    The second problem is that GPIO 1 could not be toggled by the driver
    because the GPIO is shared with the debug UART GPIO.  This will prevent
    the administrator from being able to turn WOL off if it was enabled in
    NVRAM.  The fix is to always disable the debug UART after a GRC reset.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0ba11fb307a4f18c11df6f5f255158ce055a2a16
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Jun 9 15:40:26 2008 -0700

    tg3: Fix a flags typo
    
    This patch fixes a problem where the TG3_FLAG_10_100_ONLY flag was
    testing against the wrong flags variable.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2bd3ed0479c35f7c8dadecf72b725ca0c20ea015
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Mon Jun 9 15:39:55 2008 -0700

    tg3: Fix 5714S / 5715S / 5780S link failures
    
    The git commit ef167e27039eeaea6d3cdd5c547b082e89840bdd entitled
    "Fix supporting flowctrl code" introduced a bug that prevents 5714S,
    5715S and 5780S devices from falling back to a forced link mode.  The
    problem is that the added flow control check will always fail if flow
    control is set to autoneg and either RX or TX (or both) flow control
    is enabled.  The driver defaults to setting flow control to autoneg
    and advertises both RX and TX flow control.
    
    The fix is to remove the errant check.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a5b17df04c4ad8f25fc598fce37fccb4b387c94c
Merge: b79eeeb c03571a
Author: David S. Miller <davem@davemloft.net>
Date:   Thu May 29 03:31:03 2008 -0700

    Merge branch 'upstream-next-davem' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6

commit bb9122b829e960f4e242c04c2b38c12efb37757b
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun May 25 23:51:01 2008 -0700

    tg3: Update version to 3.93
    
    This patch increments the version to 3.93.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a9daf36746b1fb5c2db8d164ca70c30c63a0d7b2
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun May 25 23:49:44 2008 -0700

    tg3: Add shmem options.
    
    This patch adds some options obtained through shared memory.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 57e6983cbde91b4569b4014b933f3a16e12b99fd
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun May 25 23:48:31 2008 -0700

    tg3: Add 5785 ASIC revision
    
    This patch added the 5785 device ID and ASIC revision to the code.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b02fd9e3ac118037549baeb86fbe0718561db17f
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun May 25 23:47:41 2008 -0700

    tg3: Add libphy support.
    
    This patch introduces the libphy support.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 158d7abdae85e9ac43d99780c372d79c119f7626
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Thu May 29 01:37:54 2008 -0700

    tg3: Add mdio bus registration
    
    This patch introduces code to register and unregister the tg3 mdio bus
    with the system.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit dd47700310ff929b439223105364c9ee3db81511
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun May 25 23:45:58 2008 -0700

    tg3: Add TG3_FLG3_USE_PHYLIB
    
    This patch introduces the TG3_FLG3_USE_PHYLIB flag and applies it to
    some select places.  This work makes later patches a little easier to
    read.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f51f3562d1c7df6c5a4ffee2185d713e98e76aa0
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun May 25 23:45:08 2008 -0700

    tg3: Code cleanup.
    
    This patch applies cleanups that would otherwise clutter later
    patches.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 95e2869adc13041baf3beecb97ab8e38c01525ae
Author: Matt Carlson <mcarlson@broadcom.com>
Date:   Sun May 25 23:44:14 2008 -0700

    tg3: Pure code movement.
    
    This patch moves some functions towards the top of the file to avoid
    unnecessary function prototypes.
    
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 855e1111f3806905b410b745e696fec4f5dac724
Author: Stephen Hemminger <shemminger@vyatta.com>
Date:   Wed Apr 16 16:37:28 2008 -0700

    tg3: remove unneeded semicolons
    
    Remove extraneous semicolons after switch and conditional statements.
    
    Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

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!
