1. 27 3月, 2013 1 次提交
  2. 27 11月, 2012 2 次提交
    • G
      stmmac: add Rx watchdog support to mitigate the DMA irqs · 62a2ab93
      Giuseppe CAVALLARO 提交于
      GMAC devices newer than databook 3.40 has an embedded timer
      that can be used for mitigating the number of interrupts.
      So this patch adds this optimizations.
      
      At any rate, the Rx watchdog can be disable (on bugged HW) by
      passing from the platform the riwt_off field.
      
      In this implementation the rx timer stored in the Reg9 is fixed
      to the max value. This will be tuned by using ethtool.
      
      V2: added a platform parameter to force to disable the rx-watchdog
      for example on new core where it is bugged.
      
      V3: do not disable NAPI when Rx watchdog is used.
      
      V4: a new extra statistic field has been added to show the early
      receive status in the interrupt handler.
      This patch also adds an extra check to avoid to call
      napi_schedule when the DMA_INTR_ENA_RIE bit is disabled in the
      Interrupt Mask register.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      62a2ab93
    • G
      stmmac: add the initial tx coalesce schema · 9125cdd1
      Giuseppe CAVALLARO 提交于
      This patch adds a new schema used for mitigating the
      number of transmit interrupts.
      It is based on a SW timer and a threshold value.
      The timer is used to periodically call the stmmac_tx_clean
      function; the threshold is used for setting the IC (Interrupt
      on Completion bit). The ISR will then invoke the poll method.
      Also the patch improves some ethtool stat fields.
      
      V2: review the logic to manage the IC bit in the TDESC
      that was bugged because it didn't take care about the
      fragments. Also fix the tx_count_frames that has not to be
      limited to TX DMA ring. Thanks to Ben Hutchings.
      
      V3: removed the spin_lock irqsave/restore as D. Miller suggested.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9125cdd1
  3. 25 8月, 2012 1 次提交
  4. 01 7月, 2012 1 次提交
    • G
      stmmac: add the Energy Efficient Ethernet support · d765955d
      Giuseppe CAVALLARO 提交于
      This patch adds the Energy Efficient Ethernet support to the stmmac.
      
      Please see the driver's documentation for further details about this support
      in the driver.
      
      Thanks also goes to Rayagond Kokatanur for his first implementation.
      
      Note:
       to clearly manage and expose the lpi interrupt status and eee ethtool
       stats I've had to do some modifications to the driver's design and I
       found really useful to move other parts of the code (e.g. mmc irq stat)
       in the main directly. So this means that some core has been reworked
       to introduce the EEE.
      
      v1: initial patch
      v2: fixed some sparse issues (typos)
      v3: erroneously sent the v2 renamed as v3
      v4:
      	o Fixed the return value of the stmmac_eee_init as suggested by D.Miller
      	o Totally reviewed the ethtool support for EEE
      	o Added a new internal parameter to tune the SW timer for TX LPI.
      v5: do not change any eee setting in case of the stmmac_ethtool_op_set_eee fails
          (it has to return -EOPNOTSUPP in that case).
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d765955d
  5. 15 5月, 2012 2 次提交
  6. 20 4月, 2012 1 次提交
    • G
      stmmac: verify the dma_cfg platform fields · 0f1f88a8
      Giuseppe CAVALLARO 提交于
      Recently the dma parameters that can be passed from the platform
      have been moved from the plat_stmmacenet_data to the stmmac_dma_cfg.
      
      In case of this new structure is not well allocated the driver can
      fails. This is an example how this field is managed in ST platforms
      
      static struct stmmac_dma_cfg gmac_dma_setting = {
              .pbl = 32,
      };
      
      static struct plat_stmmacenet_data stih415_ethernet_platform_data[] = {
      	{
      		.dma_cfg = &gmac_dma_setting,
      		.has_gmac = 1,
      [snip]
      
      This patch so verifies that the dma_cfg passed from the platform.
      In case of it is NULL there is no reason that the driver has to fail
      and some default values can be passed. These are ok for all the
      Synopsys chips and could impact on performances, only.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      cc: Viresh Kumar <viresh.kumar@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0f1f88a8
  7. 05 4月, 2012 3 次提交
  8. 16 2月, 2012 1 次提交
  9. 22 12月, 2011 1 次提交
  10. 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
  11. 20 10月, 2011 2 次提交
  12. 16 9月, 2011 4 次提交
  13. 12 8月, 2011 1 次提交
  14. 17 10月, 2010 1 次提交
  15. 25 9月, 2010 1 次提交
  16. 18 9月, 2010 1 次提交
    • G
      stmmac: consolidate and tidy-up the COE support · ebbb293f
      Giuseppe CAVALLARO 提交于
      The first version of the driver had hard-coded the logic
      for handling the checksum offloading.
      This was designed according to the chips included in
      the STM platforms where:
      o MAC10/100 supports no COE at all.
      o GMAC fully supports RX/TX COE.
      
      This is not good for other chip configurations where,
      for example, the mac10/100 supports the tx csum in HW
      or when the GMAC has no IPC.
      
      Thanks to Johannes Stezenbach; he provided me a first
      draft of this patch that only reviewed the IPC for the
      GMAC devices.
      
      This patch also helps on SPEAr platforms where the
      MAC10/100 can perform the TX csum in HW.
      Thanks to Deepak SIKRI for his support on this.
      
      In the end, GMAC devices for STM platforms have
      a bugged Jumbo frame support that needs to have
      the Tx COE disabled for oversized frames (due to
      limited buffer sizes). This information is also
      passed through the driver's platform structure.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NJohannes Stezenbach <js@sig21.net>
      Signed-off-by: NDeepak SIKRI <deepak.sikri@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ebbb293f
  17. 26 8月, 2010 1 次提交
  18. 28 7月, 2010 1 次提交
    • G
      stmmac: fix automatic PAD/FCS stripping · 3eeb2997
      Giuseppe CAVALLARO 提交于
      For Simple Ethernet frames (802.2 and 802.3) the GMAC Core
      never strips pad and fcs. This means the ACS has no effect
      on IPv4/6 frames.
      The FL bits, in the RDES0, include the FCS so the driver
      has to remove it in SW.
      For 802.3 frame format with LLC or LLC-SNAP, when set the ACS
      bit, the HW strips both PAD and FCS.
      The FL bits, in the RDES0, actually represents the frame length
      already stripped.
      This patch fixes this logic within the device driver that
      erroneously removed 4byte from 802.3 frames already stripped
      corrupting the payload.
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3eeb2997
  19. 14 4月, 2010 3 次提交
  20. 05 2月, 2010 1 次提交
  21. 08 1月, 2010 5 次提交
  22. 15 10月, 2009 1 次提交