| 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! |