1. 29 5月, 2008 2 次提交
  2. 03 5月, 2008 3 次提交
    • M
      tg3: Add link state reporting to UMP firmware · 7c5026aa
      Matt Carlson 提交于
      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: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7c5026aa
    • M
      tg3: Fix 5761 NVRAM sizes · fd1122a2
      Matt Carlson 提交于
      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: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fd1122a2
    • M
      tg3: Use constant 500KHz MI clock on adapters with a CPMU · 8ef21428
      Matt Carlson 提交于
      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: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8ef21428
  3. 20 4月, 2008 1 次提交
    • M
      tg3: 5701 DMA corruption fix · 41588ba1
      Matt Carlson 提交于
      Herbert Xu's commit fb93134d, 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: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      41588ba1
  4. 04 4月, 2008 1 次提交
  5. 29 1月, 2008 2 次提交
  6. 13 11月, 2007 6 次提交
  7. 22 10月, 2007 2 次提交
  8. 11 10月, 2007 8 次提交
  9. 19 7月, 2007 1 次提交
    • M
      [TG3]: Fix msi issue with kexec/kdump. · ee6a99b5
      Michael Chan 提交于
      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: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ee6a99b5
  10. 12 7月, 2007 2 次提交
  11. 10 5月, 2007 1 次提交
    • A
      tg3: use flush_work_keventd() · 2b3cb2e7
      Andrew Morton 提交于
      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: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2b3cb2e7
  12. 07 5月, 2007 1 次提交
  13. 06 5月, 2007 4 次提交
  14. 26 3月, 2007 2 次提交
    • M
      [TG3]: Exit irq handler during chip reset. · d18edcb2
      Michael Chan 提交于
      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: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d18edcb2
    • M
      [TG3]: Eliminate the unused TG3_FLAG_SPLIT_MODE flag. · 1c46ae05
      Michael Chan 提交于
      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: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1c46ae05
  15. 27 2月, 2007 1 次提交
    • M
      [TG3]: TSO workaround fixes. · 7f62ad5d
      Michael Chan 提交于
      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: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7f62ad5d
  16. 14 2月, 2007 1 次提交
  17. 09 1月, 2007 1 次提交
  18. 18 12月, 2006 1 次提交