- 15 Sep, 2010 7 commits
-
-
Matt Carlson authored
This patch converts the driver to prefer the skb_is_gso_v6() helper over the explicit inlined version. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
Now that each NAPI instance has its own producer ring, it no longer makes sense to keep the producer ring structure external. This patch migrates the producer ring struct to tg3_napi and pivots the code to the new implementation. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
TG3_IRQ_MAX_VECS should be seen as the maximum number of vectors that any device could be expected to use. tp->irq_max represents the maximum number of vectors the current device can use. This patch clarifies the semantics of the code to match the above description. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch adjusts the driver to use the tg3_start_xmit_dma_bug() transmit routine for all revisions of 5717 asic rev devices and then allows the driver to attach to B0 and later devices. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
NCSI firmware does not accept APE events. It relies on a "driver state" location in shared memory to tell it what the driver's current state is. This patch pivots the code to use the new driver state scheme. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
It was recently discovered that enabling TSS can lockup the device. This patch disables the feature until a suitable workaround can be found. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
Earlier versions of tg3 devices had a problem where the read DMA FIFO could be overrun in certain edge conditions. The fix was to limit the number of rx BDs the hardware would fetch at a time. For later devices (5761, 5784 and later ASIC revs), there is a hardware fix that must be enabled to fix the same problem. This patch adds that hardware fix. There is a gap in the ASIC revision lineage where neither fix is applied. This is intentional as these ASIC revisions are not afflicted by the bug. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 03 Sep, 2010 1 commit
-
-
Eric Dumazet authored
fresh skbs have ip_summed set to CHECKSUM_NONE (0) We can avoid setting again skb->ip_summed to CHECKSUM_NONE in drivers. Introduce skb_checksum_none_assert() helper so that we keep this assertion documented in driver sources. Change most occurrences of : skb->ip_summed = CHECKSUM_NONE; by : skb_checksum_none_assert(skb); Signed-off-by:
Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 02 Aug, 2010 14 commits
-
-
Matt Carlson authored
This patch updates the tg3 version to 3.113. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch moves most of the phy related flag definitions over to the phyflags member and changes the code accordingly. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch deletes the link_config.phy_is_low_power flag and creates a new phy_flags device member to store all phy related settings. All the code is converted accordingly. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch replaces some instances of hardcoded phy register values with preprocessor equivalents. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch adds error reporting to the tg3_phydsp_write() function and converts a few more locations to use this function over the inlined equivalent. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
smp_mb() inside tg3_tx_avail() is used twice in the normal tg3_start_xmit() path (see illustration below). The full memory barrier is only necessary during race conditions with tx completion. We can speed up the tx path by replacing smp_mb() in tg3_tx_avail() with a compiler barrier. The compiler barrier is to force the compiler to fetch the tx_prod and tx_cons from memory. In the race condition between tg3_start_xmit() and tg3_tx(), we have the following situation: tg3_start_xmit() tg3_tx() if (!tg3_tx_avail()) BUG(); ... if (!tg3_tx_avail()) netif_tx_stop_queue(); update_tx_index(); smp_mb(); smp_mb(); if (tg3_tx_avail()) if (netif_tx_queue_stopped() && netif_tx_wake_queue(); tg3_tx_avail()) With smp_mb() removed from tg3_tx_avail(), we need to add smp_mb() to tg3_start_xmit() as shown above to properly order netif_tx_stop_queue() and tg3_tx_avail() to check the ring index. If it is not strictly ordered, the tx queue can be stopped forever. This improves performance by about 3% with 2 ports running bi-directional 64-byte packets. Reviewed-by:
Benjamin Li <benli@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
These devices were never released to the public. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch adds code to determine the APE firmware type and report this along with the firmware version. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The ASPM workaround setting obtained from NVRAM only works with devices older than 5717. This patch enforces the restriction. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch changes the code to only manage the PCIe gphy power for CPMU-less devices only. The CPMU takes over management for newer chips. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The phy test register location has been repurposed for 5717+ devices. This patch changes the code to avoid this location for these devices. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch creates a TG3_FLG3_5717_PLUS flag to collectively describe the set of changes in the ASIC that will apply to all future chip revisions. Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The TSS flag needs to be turned off during tg3_close(). If the device fails to allocate more than one MSI-X vector the next time the device is brought up, transmits will fail. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
tg3 commit e7126997 entitled "tg3: Preserve PCIe MPS setting for new devs" attempted to ensure the PCIe link negotiated Maximum Payload Size (MPS) setting was 128 bytes for all devices that didn't support higher speeds. The 5784 device was mistakenly added to this list when it shouldn't have. This patch removes the 5784 ASIC rev devices from that list. Reviewed-by:
Benjamin Li <benli@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 19 Jul, 2010 1 commit
-
-
Richard Cochran authored
The phy_mii_ioctl() function unnecessarily throws away the original ifreq. We need access to the ifreq in order to support PHYs that can perform hardware time stamping. Two maverick drivers filter the ioctl commands passed to phy_mii_ioctl(). This is unnecessary since phylib will check the command in any case. Signed-off-by:
Richard Cochran <richard.cochran@omicron.at> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 12 Jul, 2010 8 commits
-
-
Matt Carlson authored
This patch updates the tg3 version to 3.112. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch fixes the following checkpatch errors: ERROR: do not use assignment in if condition + if ((mss = skb_shinfo(skb)->gso_size) != 0) { ERROR: do not use assignment in if condition + if ((mss = skb_shinfo(skb)->gso_size) != 0) { ERROR: space prohibited after that '!' (ctx:BxW) + if (! netif_carrier_ok(tp->dev) && ^ ERROR: space required after that ',' (ctx:VxV) +#define GET_REG32_LOOP(base,len) \ ^ ERROR: "(foo*)" should be "(foo *)" + memcpy(data, ((char*)&val) + b_offset, b_count); ERROR: do not use assignment in if condition + if ((err = tg3_do_mem_test(tp, mem_tbl[i].offset, Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch reverts commit 52cdf852 , entitled "tg3: Prevent a PCIe tx glitch". The problem does not have any visible side-effects and happens too early for the driver to do anything about it. The proper place for this code is within the device's bootcode. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch changes the code so that the driver version can be reported to the firmware in addition to the current use. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
tg3 is coded to refuse to attach to 5717 serdes devices. Now that the hardware is better supported, we can relax this restriction. This patch also fixes a recently introduced bug which will cause serdes parallel detection not to work with 5780 class devices. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The tg3_start_xmit_dma_bug() function was missing code to process IPv6 TSO packets. This patch adds the missing support. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The interrupt coalescing setup code used the TG3_FLG2_USING_MSIX flag to determine whether or not to configure the rx coalescing parameters. This is incorrect for the single MSI-X vector case. This patch changes the code to look at the TG3_FLG3_ENABLE_RSS instead. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch reverts commit 2601d8a0 . A spectacular set of coincidences made it look as though the table was setup incorrectly. The original version was correct. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Reviewed-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 09 Jul, 2010 2 commits
-
-
Eric Dumazet authored
Similar to commit 72dccb01 (bnx2: Update vlan_features) In order to enable TSO on vlan devices, tg3 needs to update dev->vlan_features. Tested on HP NC326m (aka BCM5715S (rev a3)) Signed-off-by:
Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Eric Dumazet authored
Now core network is able to handle 64 bit netdevice stats on 32 bit arches, we can provide them for tg3, since hardware maintains 64 bit counters. Signed-off-by:
Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 07 Jun, 2010 7 commits
-
-
Matt Carlson authored
This patch updates the tg3 version to 3.111. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch adds the 5719 PCI device and phy IDs. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch adds the 5719 ASIC revision. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The driver sometimes needs to know which function number the current device is. This patch changes the code to use devfn over internal register values. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The 5717 serdes phy brings link up via parallel detection without any additional help from the driver. This patch changes the tg3_setup_fiber_mii_phy() function to detect and allow the use of this feature. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
This patch changes the code to make it legal to allocate only one MSI-X vector. It also fixes a bug where the driver was not checking for error return codes from pci_enable_msix(). Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
Matt Carlson authored
The driver was incorrectly programming the indirection table such that rx traffic intended for the second ring went to the first ring, rx traffic intended for the third ring went to the second ring, etc. This patch changes the code so that rx traffic is diverted to the proper ring. Signed-off-by:
Matt Carlson <mcarlson@broadcom.com> Signed-off-by:
Michael Chan <mchan@broadcom.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
-