1. 18 8月, 2011 1 次提交
  2. 12 8月, 2011 1 次提交
    • J
      freescale: Move the Freescale drivers · ec21e2ec
      Jeff Kirsher 提交于
      Move the Freescale drivers into drivers/net/ethernet/freescale/ and
      make the necessary Kconfig and Makefile changes.
      
      CC: Sandeep Gopalpet <sandeep.kumar@freescale.com>
      CC: Andy Fleming <afleming@freescale.com>
      CC: Shlomi Gridish <gridish@freescale.com>
      CC: Li Yang <leoli@freescale.com>
      CC: Pantelis Antoniou <pantelis.antoniou@gmail.com>
      CC: Vitaly Bordug <vbordug@ru.mvista.com>
      CC: Dan Malek <dmalek@jlc.net>
      CC: Sylvain Munaut <tnt@246tNt.com>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      ec21e2ec
  3. 28 7月, 2011 1 次提交
  4. 22 7月, 2011 1 次提交
  5. 16 7月, 2011 1 次提交
  6. 22 6月, 2011 1 次提交
  7. 21 6月, 2011 1 次提交
    • S
      gianfar v5: implement nfc · 4aa3a715
      Sebastian Poehn 提交于
      This patch adds all missing functionalities for nfc except GRXFH. There is so much code because hardware has not a TCAM.
      Further hardware rule space is very limited. So I had to extensively use
      optimization features. Both reasons lead to the necessity to hold all
      online flows in a linked-list.
      
      Change-log:
      # Some suggestions by Joe Perches applied (thanks!)
      # Shorted some logs
      # Use memcmp() for comparing
      Signed-off-by: NSebastian Poehn <sebastian.poehn@belden.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4aa3a715
  8. 17 6月, 2011 1 次提交
  9. 09 6月, 2011 1 次提交
  10. 16 4月, 2011 1 次提交
  11. 19 3月, 2011 1 次提交
  12. 01 3月, 2011 1 次提交
  13. 19 1月, 2011 1 次提交
  14. 14 1月, 2011 1 次提交
    • E
      net: remove dev_txq_stats_fold() · 1ac9ad13
      Eric Dumazet 提交于
      After recent changes, (percpu stats on vlan/tunnels...), we dont need
      anymore per struct netdev_queue tx_bytes/tx_packets/tx_dropped counters.
      
      Only remaining users are ixgbe, sch_teql, gianfar & macvlan :
      
      1) ixgbe can be converted to use existing tx_ring counters.
      
      2) macvlan incremented txq->tx_dropped, it can use the
      dev->stats.tx_dropped counter.
      
      3) sch_teql : almost revert ab35cd4b (Use net_device internal stats)
          Now we have ndo_get_stats64(), use it, even for "unsigned long"
      fields (No need to bring back a struct net_device_stats)
      
      4) gianfar adds a stats structure per tx queue to hold
      tx_bytes/tx_packets
      
      This removes a lockdep warning (and possible lockup) in rndis gadget,
      calling dev_get_stats() from hard IRQ context.
      
      Ref: http://www.spinics.net/lists/netdev/msg149202.htmlReported-by: NNeil Jones <neiljay@gmail.com>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Jarek Poplawski <jarkao2@gmail.com>
      CC: Alexander Duyck <alexander.h.duyck@intel.com>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      CC: Sandeep Gopalpet <sandeep.kumar@freescale.com>
      CC: Michal Nazarewicz <mina86@mina86.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1ac9ad13
  15. 21 12月, 2010 1 次提交
  16. 18 11月, 2010 1 次提交
  17. 01 11月, 2010 1 次提交
  18. 28 10月, 2010 1 次提交
  19. 21 10月, 2010 1 次提交
  20. 28 9月, 2010 1 次提交
  21. 03 9月, 2010 1 次提交
  22. 19 8月, 2010 1 次提交
  23. 17 8月, 2010 1 次提交
  24. 06 8月, 2010 1 次提交
  25. 19 7月, 2010 1 次提交
  26. 08 7月, 2010 1 次提交
    • E
      gianfar: code cleanup · acbc0f03
      Eran Liberty 提交于
      This patch relates to "[PATCH] gainfar.c : skb_over_panic
      (kernel-2.6.32.15)"
      
      While in 2.6.32.15 it actually fixed a bug here it merely cleans up
      the previous attempts to fix the bug with a more coherent code.
      
      Currently before queuing skb into the rx_recycle it is
      "un-skb_reserve"-ed so when taken out in gfar_new_skb() it wont be
      reserved twice.
      
      This patch makes sure the alignment skb_reserve is done once, upon
      allocating the skb and not when taken out of the rx_recycle
      pool. Eliminating the need to undo anything before queue skb back to
      the pool.
      
      NOTE: This patch will compile and is fairly straight forward but I do
      not have environment to test it as I did with the 2.6.32.15 fix.
      Signed-off-by: NEran Liberty <liberty@extricom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      acbc0f03
  27. 01 7月, 2010 3 次提交
    • A
      gianfar: Implement workaround for eTSEC-A002 erratum · 511d934f
      Anton Vorontsov 提交于
      MPC8313ECE says:
      
      "If the controller receives a 1- or 2-byte frame (such as an illegal
       runt packet or a packet with RX_ER asserted) before GRS is asserted
       and does not receive any other frames, the controller may fail to set
       GRSC even when the receive logic is completely idle. Any subsequent
       receive frame that is larger than two bytes will reset the state so
       the graceful stop can complete. A MAC receiver (Rx) reset will also
       reset the state."
      
      This patch implements the proposed workaround:
      
      "If IEVENT[GRSC] is still not set after the timeout, read the eTSEC
       register at offset 0xD1C. If bits 7-14 are the same as bits 23-30,
       the eTSEC Rx is assumed to be idle and the Rx can be safely reset.
       If the register fields are not equal, wait for another timeout
       period and check again."
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      511d934f
    • A
      gianfar: Implement workaround for eTSEC76 erratum · deb90eac
      Anton Vorontsov 提交于
      MPC8313ECE says:
      
      "For TOE=1 huge or jumbo frames, the data required to generate the
       checksum may exceed the 2500-byte threshold beyond which the controller
       constrains itself to one memory fetch every 256 eTSEC system clocks.
      
       This throttling threshold is supposed to trigger only when the
       controller has sufficient data to keep transmit active for the duration
       of the memory fetches. The state machine handling this threshold,
       however, fails to take large TOE frames into account. As a result,
       TOE=1 frames larger than 2500 bytes often see excess delays before start
       of transmission."
      
      This patch implements the workaround as suggested by the errata
      document, i.e.:
      
      "Limit TOE=1 frames to less than 2500 bytes to avoid excess delays due to
       memory throttling.
       When using packets larger than 2700 bytes, it is recommended to turn TOE
       off."
      
      To be sure, we limit the TOE frames to 2500 bytes, and do software
      checksumming instead.
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      deb90eac
    • A
      gianfar: Implement workaround for eTSEC74 erratum · 7d350977
      Anton Vorontsov 提交于
      MPC8313ECE says:
      
      "If MACCFG2[Huge Frame]=0 and the Ethernet controller receives frames
       which are larger than MAXFRM, the controller truncates the frames to
       length MAXFRM and marks RxBD[TR]=1 to indicate the error. The controller
       also erroneously marks RxBD[TR]=1 if the received frame length is MAXFRM
       or MAXFRM-1, even though those frames are not truncated.
       No truncation or truncation error occurs if MACCFG2[Huge Frame]=1."
      
      There are two options to workaround the issue:
      
      "1. Set MACCFG2[Huge Frame]=1, so no truncation occurs for invalid large
       frames. Software can determine if a frame is larger than MAXFRM by
       reading RxBD[LG] or RxBD[Data Length].
      
       2. Set MAXFRM to 1538 (0x602) instead of the default 1536 (0x600), so
       normal-length frames are not marked as truncated. Software can examine
       RxBD[Data Length] to determine if the frame was larger than MAXFRM-2."
      
      This patch implements the first workaround option by setting HUGEFRAME
      bit, and gfar_clean_rx_ring() already checks the RxBD[Data Length].
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d350977
  28. 17 6月, 2010 3 次提交
    • A
      gianfar: Fix oversized packets handling · 63b88b90
      Anton Vorontsov 提交于
      Issuing the following command on host:
      
      $ ifconfig eth2 mtu 1600 ; ping 10.0.0.27 -s 1485 -c 1
      
      Makes some boards (tested with MPC8315 rev 1.1 and MPC8313 rev 1.0)
      oops like this:
      
        skb_over_panic: text:c0195914 len:1537 put:1537 head:c79e4800 data:c79e4880 tail:0xc79e4e81 end:0xc79e4e80 dev:eth1
        ------------[ cut here ]------------
        kernel BUG at net/core/skbuff.c:127!
        Oops: Exception in kernel mode, sig: 5 [#1]
        MPC831x RDB
        last sysfs file: /sys/kernel/uevent_seqnum
        Modules linked in:
        NIP: c01c1840 LR: c01c1840 CTR: c016d918
        [...]
        NIP [c01c1840] skb_over_panic+0x48/0x5c
        LR [c01c1840] skb_over_panic+0x48/0x5c
        Call Trace:
        [c0339d50] [c01c1840] skb_over_panic+0x48/0x5c (unreliable)
        [c0339d60] [c01c3020] skb_put+0x5c/0x60
        [c0339d70] [c0195914] gfar_clean_rx_ring+0x25c/0x3d0
        [c0339dc0] [c01976e8] gfar_poll+0x170/0x1bc
      
      Dumped buffer descriptors showed that eTSEC's length/truncation
      logic sometimes passes oversized packets, i.e. for the above ICMP
      packet the following two buffer descriptors may become ready:
      
        status=1400 length=1536
        status=1800 length=1541
      
      So, it seems that gianfar actually receives the whole big frame,
      and it tries to place the packet into two BDs. This situation
      confuses the driver, and so the skb_put() sanity check fails.
      
      This patch fixes the issue by adding an appropriate check, i.e.
      the driver should not try to process frames with buffer
      descriptor's length over rx_buffer_size (i.e. maxfrm and mrblr).
      
      Note that sometimes eTSEC works correctly, i.e. in the second
      (last) buffer descriptor bits 'truncated' and 'crcerr' are set,
      and so there's no oops. Though I couldn't find any logic when
      it works correctly and when not.
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      63b88b90
    • M
      gianfar: Fix setup of RX time stamping · 97553f7f
      Manfred Rudigier 提交于
      Previously the RCTRL_TS_ENABLE bit was set unconditionally. However, if
      the RCTRL_TS_ENABLE is set without TMR_CTRL[TE], the driver does not work
      properly on some boards (Anton had problems with the MPC8313ERDB and
      MPC8568EMDS).
      
      With this patch the bit will only be set if requested from user space
      with the SIOCSHWTSTAMP ioctl command, meaning that time stamping is
      disabled during normal operation. Users who are not interested in time
      stamps will not experience problems with buggy CPU revisions or
      performance drops any more.
      
      The setting of TMR_CTRL[TE] is still up to the user. This is considered
      safe because users wanting HW timestamps must initialize the eTSEC clock
      first anyway, e.g. with the recently submitted PTP clock driver.
      Signed-off-by: NManfred Rudigier <manfred.rudigier@omicron.at>
      Reviewed-by: NAnton Vorontsov <cbouatmailru@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      97553f7f
    • U
      fix typos concerning "first" · 85dd08eb
      Uwe Kleine-König 提交于
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      85dd08eb
  29. 10 6月, 2010 1 次提交
    • A
      gianfar: Revive the driver for eTSEC devices (disable timestamping) · 619baba1
      Anton Vorontsov 提交于
      Since commit cc772ab7 ("gianfar: Add
      hardware RX timestamping support"), the driver no longer works on
      at least MPC8313ERDB and MPC8568EMDS boards (and possibly much more
      boards as well).
      
      That's how MPC8313 Reference Manual describes RCTRL_TS_ENABLE bit:
      
        Timestamp incoming packets as padding bytes. PAL field is set
        to 8 if the PAL field is programmed to less than 8. Must be set
        to zero if TMR_CTRL[TE]=0.
      
      I see that the commit above sets this bit, but it doesn't handle
      TMR_CTRL. Manfred probably had this bit set by the firmware for
      his boards. But obviously this isn't true for all boards in the
      wild.
      
      Also, I recall that Freescale BSPs were explicitly disabling the
      timestamping because of a performance drop.
      
      For now, the best way to deal with this is just disable the
      timestamping, and later we can discuss proper device tree bindings
      and implement enabling this feature via some property.
      Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      619baba1
  30. 01 6月, 2010 1 次提交
  31. 22 5月, 2010 1 次提交
    • G
      of: Remove duplicate fields from of_platform_driver · 4018294b
      Grant Likely 提交于
      .name, .match_table and .owner are duplicated in both of_platform_driver
      and device_driver.  This patch is a removes the extra copies from struct
      of_platform_driver and converts all users to the device_driver members.
      
      This patch is a pretty mechanical change.  The usage model doesn't change
      and if any drivers have been missed, or if anything has been fixed up
      incorrectly, then it will fail with a compile time error, and the fixup
      will be trivial.  This patch looks big and scary because it touches so
      many files, but it should be pretty safe.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Acked-by: NSean MacLennan <smaclennan@pikatech.com>
      4018294b
  32. 19 5月, 2010 1 次提交
  33. 18 5月, 2010 1 次提交
  34. 14 5月, 2010 1 次提交
    • J
      drivers/net: Remove unnecessary returns from void function()s · a4b77097
      Joe Perches 提交于
      This patch removes from drivers/net/ all the unnecessary
      return; statements that precede the last closing brace of
      void functions.
      
      It does not remove the returns that are immediately
      preceded by a label as gcc doesn't like that.
      
      It also does not remove null void functions with return.
      
      Done via:
      $ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
        xargs perl -i -e 'local $/ ; while (<>) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'
      
      with some cleanups by hand.
      
      Compile tested x86 allmodconfig only.
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a4b77097
  35. 10 5月, 2010 1 次提交
  36. 06 5月, 2010 1 次提交