blob: 8b52619eaf31cb08987d7d1f2fc85497cb81951e [file] [log] [blame]
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!