1. 24 6月, 2015 1 次提交
    • A
      stmmac: troubleshoot unexpected bits in des0 & des1 · f1590670
      Alexey Brodkin 提交于
      Current implementation of descriptor init procedure only takes
      care about setting/clearing ownership flag in "des0"/"des1"
      fields while it is perfectly possible to get unexpected bits
      set because of the following factors:
      
       [1] On driver probe underlying memory allocated with
           dma_alloc_coherent() might not be zeroed and so
           it will be filled with garbage.
      
       [2] During driver operation some bits could be set by SD/MMC
           controller (for example error flags etc).
      
      And unexpected and/or randomly set flags in "des0"/"des1"
      fields may lead to unpredictable behavior of GMAC DMA block.
      
      This change addresses both items above with:
      
       [1] Use of dma_zalloc_coherent() instead of simple
           dma_alloc_coherent() to make sure allocated memory is
           zeroed. That shouldn't affect performance because
           this allocation only happens once on driver probe.
      
       [2] Do explicit zeroing of both "des0" and "des1" fields
           of all buffer descriptors during initialization of
           DMA transfer.
      
      And while at it fixed identation of dma_free_coherent()
      counterpart as well.
      Signed-off-by: NAlexey Brodkin <abrodkin@synopsys.com>
      Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
      Cc: arc-linux-dev@synopsys.com
      Cc: linux-kernel@vger.kernel.org
      Cc: stable@vger.kernel.org
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f1590670
  2. 09 4月, 2013 1 次提交
  3. 27 3月, 2013 1 次提交
    • G
      stmmac: support extend descriptors · c24602ef
      Giuseppe CAVALLARO 提交于
      This patch is to support the extend descriptors available
      in the chips newer than the 3.50.
      
      In case of the extend descriptors cannot be supported,
      at runtime, the driver will continue to work using the old style.
      
      In detail, this support extends the main descriptor structure
      adding new descriptors: 4, 5, 6, 7. The desc4 gives us extra
      information about the received ethernet payload when it is
      carrying PTP packets or TCP/UDP/ICMP over IP packets.
      The descriptors 6 and 7 are used for saving HW L/H timestamps (PTP).
      
      V2: this new version removes the Koption added in the first implementation
      because all the checks now to verify if the extended descriptors are
      actually supported happen at probe time.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c24602ef
  4. 25 8月, 2012 1 次提交
  5. 28 10月, 2011 1 次提交
    • G
      stmmac: update normal descriptor structure (v2) · 3c20f72f
      Giuseppe CAVALLARO 提交于
      This patch updates the normal descriptor structure
      to work fine on new GMAC Synopsys chips.
      
      Normal descriptors were designed on the old MAC10/100
      databook 1.91 where some bits were reserved: for example
      the tx checksum insertion and rx checksum offload.
      
      The patch maintains the back-compatibility with old
      MAC devices (tested on STx7109 MAC10/100) and adds new
      fields that actually new GMAC devices can use.
      
      For example, STx7109 (MAC10/100) will pass from the platform
        tx_coe = 0, enh_desc = 0, has_gmac = 0.
      A platform like Loongson1B (GMAC) will pass:
        tx_coe = 1, enh_desc = 0, has_gmac = 1.
      
      Thanks to Kelvin, he enhanced the normal descriptors for
      GMAC (on MIPS Loongson1B platform).
      Signed-off-by: NKelvin Cheung <keguang.zhang@gmail.com>
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3c20f72f
  6. 12 8月, 2011 1 次提交
  7. 08 1月, 2010 1 次提交
  8. 15 10月, 2009 1 次提交