1. 16 Mar, 2016 14 commits
    • David S. Miller's avatar
      Merge branch 'arc_emac-next' · c8f5d298
      David S. Miller authored
      Caesar Wang says:
      
      ====================
      arc_emac: fixes the emac issues and cleanup emac drivers
      
      This series patches are based on kernel 4.5-rc7+ version.
      Linux version 4.5.0-rc7-next-20160311+ (wxt@nb) (...) #45 SMP Sun Mar 13 16:17:56
      
      The history patch in here:
      Patch-v1: https://lkml.org/lkml/2016/3/11/209
      Patch-v2: https://lkml.org/lkml/2016/3/13/39
      
      Verified on kylin board with my github.
      https://github.com/Caesar-github/rockchip/tree/kylin/next
      
      That's verified on kylin board with ubuntu os.
      
      This series patches are built all pass with Mr.robot on
      https://github.com/Caesar-github/linux/tree/build-emac-v3
      
      How to test and verify?
      
      You can refer to the following wiki document.
      http://rockchip.wikidot.com/linux-develop-guide
      
      bootup log:
      [    1.264740] rockchip_emac 10200000.ethernet: no regulator found
      [    1.270908] rockchip_emac 10200000.ethernet: ARC EMAC detected with id: 0x7fd02
      [    1.278362] rockchip_emac 10200000.ethernet: IRQ is 29
      [    1.283747] rockchip_emac 10200000.ethernet: MAC address is now 06:5d:61:c7:39:41
      [    1.291314] rockchip_emac 10200000.ethernet: GPIO lookup for consumer phy-reset
      [    1.291333] rockchip_emac 10200000.ethernet: using device tree for GPIO lookup
      [    1.663155] rockchip_emac 10200000.ethernet: connected to Generic PHY phy with id 0xffffc816
      [    8.863448] rockchip_emac 10200000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
      
      root@localhost:/# busybox ping www.baidu.com
      PING www.baidu.com (14.215.177.38): 56 data bytes
      64 bytes from 14.215.177.38: seq=0 ttl=48 time=35.046 ms
      64 bytes from 14.215.177.38: seq=1 ttl=48 time=35.095 ms
      64 bytes from 14.215.177.38: seq=2 ttl=48 time=34.203 ms
      64 bytes from 14.215.177.38: seq=3 ttl=48 time=38.516 ms
      ...
      ---
      
      1) This series has 6 patches: (1--->9)
      net: arc_emac: make the rockchip emac document more compatible
      net: arc_emac: add phy reset is optional for device tree
      net: arc_emac: support the phy reset for emac driver
      net: arc: trivial: cleanup the emac driver
      clk: rockchip: add node-id for rk3036 emac hclk
      clk: rockchip: associate the rk3036 HCLK_EMAC clock-id
      clk: rockchip: add clock-id for rk3036 emac pll source clock
      clk: rockchip: associate SCLK_MAC_PLL and disable reparenting on rk3036
      ARM: dts: rockchip: add support emac for RK3036
      
      2) This series patches have the following descriptions:
      
      Hi Rob, David:
      PATCH[1/9-2/9]: ====>
      net: arc_emac: make the rockchip emac document more compatible
      net: arc_emac: add phy reset is optional for device tree
      
      The patches change the rockchip emac document for more compatible and
      Add the phy reset property for document.
      ---
      
      Hi David
      PATCH[3/9]: ====>
      net: arc_emac: support the phy reset for emac driver
      
      The emac didn't work on kylin board since in some case the clocks parent changed.
      The kylin hardware connects the phy reset pin, we should use it with real world.
      As the previous patch discuss on https://patchwork.kernel.org/patch/8186801/
      
      And as sergei/Heiko suggestions on
      https://patchwork.kernel.org/patch/8564571/
      ---
      
      Hi David
      PATCH[4/9]: ====>
      net: arc: trivial: cleanup the emac driver
      
      The first time to look the emac drivers, I think that have to cleanup the drivers with scripts.
      Although it's the trivial things, in order to be more read.
      ---
      
      Hi Heiko,Michael,Stephen:
      PATCH[5/9-8/9]: ====> clk: rockchip: rk3036: fix and add node id for emac clock
      
      Four-part from https://patchwork.kernel.org/patch/8564581/
      clk: rockchip: add node-id for rk3036 emac hclk
      clk: rockchip: associate the rk3036 HCLK_EMAC clock-id
      clk: rockchip: add clock-id for rk3036 emac pll source clock
      clk: rockchip: associate SCLK_MAC_PLL and disable reparenting on rk3036
      
      Add the emac needed clocks for rk3036 SoCs
      ---
      
      Hi Heiko:
      PATCH[9/9]: ====>
      ARM: dts: rockchip: add support emac for RK3036
      
      Add the emac needed main info for rk3036 dts.
      ---
      
      Thanks your reviewing! :)
      
      Changes in v3:
      - %s/he/the
      - Add the Cc people
      - As Sergei comments, the original name is better, so
        %s/reset-gpios/phy-reset-gpios
      - Add the Cc people.
      - Caused the build error since the missing include head file.
      - %s/reset/phy-reset to match the device tree.
      - Add the Cc people
      - Add the Cc people.
      - Add the Cc people.
      - Add the Cc people.
      - Add the Cc people.
      - Add the Cc people.
      - rename reset-gpio to phy-reset-gpios.
      - change the commit.
      - remove the pcfg_output_high, that's really not needed for emac.
      - Add the Cc people.
      - Fixes the 'zhengxing' to 'Xing Zheng'.
      
      Changes in v2:
      - change the commit and remove the repeat the name 'rockchip'.
      - %s/phy-reset-gpios/reset-gpios
      - As the pervious version, Sergei and Heiko comments on
        https://patchwork.kernel.org/patch/8564571/.
      - Nevermind, add signed-off since Heiko the original patch,
        refer the Heiko's test patch on
        https://github.com/mmind/linux-rockchip/commit/a943c588783438ff1c508dfa8c79f1709aa5775e
        :)
      - As the robot notice the build error since overflow in implicit
        constant conversion.
      - rename phy-reset-gpio to reset-gpios.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c8f5d298
    • Xing Zheng's avatar
      ARM: dts: rockchip: add to support emac for rk3036 SoCs · af671e7b
      Xing Zheng authored
      This patch adds the emac device node for rk3036 SoCs.
      We need to let mac clock under the DPLL which is able to provide
      the accurate 50MHz what mac_ref need, since that will cause some
      unstable things if the cpufreq is working.
      Signed-off-by: default avatarXing Zheng <zhengxing@rock-chips.com>
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: linux-rockchip@lists.infradead.org
      Cc: Xing Zheng <zhengxing@rock-chips.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: linux-arm-kernel@lists.infradead.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      af671e7b
    • Heiko Stuebner's avatar
      clk: rockchip: associate SCLK_MAC_PLL and disable reparenting on rk3036 · 2c6fae25
      Heiko Stuebner authored
      The emac needs constant and very specific rate but the possible PLL-sources
      are very limited, so we expect the PLL source to be set manually on per
      board and don't want it to get changed in an automatic way later.
      So add the necessary clock-id and disable reparenting on set_rate calls.
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: linux-clk@vger.kernel.org
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2c6fae25
    • Xing Zheng's avatar
      clk: rockchip: add clock-id for rk3036 emac pll source clock · f7e18022
      Xing Zheng authored
      Suitable PLLs for the emac on the rk3036 are difficult to find
      and one of them is the (continuously changing) APLL. So in most
      cases it will be necessary to select a PLL manually.
      So add a clock-id for it.
      Signed-off-by: default avatarXing Zheng <zhengxing@rock-chips.com>
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: Xing Zheng <zhengxing@rock-chips.com>
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: linux-clk@vger.kernel.org
      Cc: linux-rockchip@lists.infradead.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f7e18022
    • Xing Zheng's avatar
      clk: rockchip: associate the rk3036 HCLK_EMAC clock-id · e764b939
      Xing Zheng authored
      Associate the new clock id the clock.
      Signed-off-by: default avatarXing Zheng <zhengxing@rock-chips.com>
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: Xing Zheng <zhengxing@rock-chips.com>
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: linux-clk@vger.kernel.org
      Cc: linux-rockchip@lists.infradead.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e764b939
    • Xing Zheng's avatar
      clk: rockchip: add node-id for rk3036 emac hclk · fb781c8e
      Xing Zheng authored
      Add the node-id for the emac hclk to the binding header.
      Signed-off-by: default avatarXing Zheng <zhengxing@rock-chips.com>
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: Xing Zheng <zhengxing@rock-chips.com>
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: linux-clk@vger.kernel.org
      Cc: linux-rockchip@lists.infradead.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fb781c8e
    • Caesar Wang's avatar
      net: arc: trivial: cleanup the emac driver · 663713eb
      Caesar Wang authored
      This patch will make the driver more readability
      
      The emac has the error and warnings if you run
      'scripts/checkpatch.pl -f --subjective xxx' to check.
      
      Let's clean up such trivial details.
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: Jiri Kosina <trivial@kernel.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Alexander Kochetkov <al.kochet@gmail.com>
      Cc: netdev@vger.kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      663713eb
    • Caesar Wang's avatar
      net: arc_emac: support the phy reset for emac driver · 1bddd96c
      Caesar Wang authored
      This patch adds to support the emac phy reset.
      
      Different boards may require different phy reset duration. Add property
      phy-reset-duration for emac driver, so that the boards that need
      a longer reset duration can specify it in their device tree.
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: netdev@vger.kernel.org
      Cc: Alexander Kochetkov <al.kochet@gmail.com>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1bddd96c
    • Caesar Wang's avatar
      net: arc_emac: add phy reset is optional for device tree · 8700eee6
      Caesar Wang authored
      This patch adds the following property for arc_emac.
      
      1) phy-reset-gpios:
      The phy-reset-gpio is an optional property for arc emac device tree boot.
      Change the binding document to match the driver code.
      
      2) phy-reset-duration:
      Different boards may require different phy reset duration. Add property
      phy-reset-duration for device tree probe, so that the boards that need
      a longer reset duration can specify it in their device tree.
      
      Anyway, we can add the above property for arc emac.
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: devicetree@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Cc; Alexander Kochetkov <al.kochet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8700eee6
    • Caesar Wang's avatar
      net: arc_emac: make the rockchip emac document more compatible · 434242cd
      Caesar Wang authored
      Add the rk3036 SoCs to match driver for document since the emac driver
      has supported the rk3036 SoCs.
      
      This patch adds the rk3036/rk3066/rk3188 SoCS to compatible for rockchip
      emac ducument. Also, that will suit for other SoCs in the future.
      Signed-off-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: devicetree@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Alexander Kochetkov <al.kochet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      434242cd
    • Ben Hutchings's avatar
      ethtool: Set cmd field in ETHTOOL_GLINKSETTINGS response to wrong nwords · 793cf87d
      Ben Hutchings authored
      When the ETHTOOL_GLINKSETTINGS implementation finds that userland is
      using the wrong number of words of link mode bitmaps (or is trying to
      find out the right numbers) it sets the cmd field to 0 in the response
      structure.
      
      This is inconsistent with the implementation of every other ethtool
      command, so let's remove that inconsistency before it gets into a
      stable release.
      
      Fixes: 3f1ac7a7 ("net: ethtool: add new ETHTOOL_xLINKSETTINGS API")
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      793cf87d
    • Sergei Shtylyov's avatar
      sh_eth: do not call netif_start_queue() from sh_eth_dev_init() · ad846aa5
      Sergei Shtylyov authored
      Iff  sh_eth_phy_start() call fails in sh_eth_open(), the netif_start_queue()
      call done by sh_eth_dev_init()  is not undone.  In order to deal with that,
      stop calling netif_start_queue()  from there, so that it can be called only
      when the device is fully opened and sh_eth_dev_init() only deals with the
      hardware initialization, symmetrically to sh_eth_dev_exit()...
      Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ad846aa5
    • Yuval Mintz's avatar
      bnx2x: don't wait for Tx completion on recovery · d78a1f08
      Yuval Mintz authored
      When driver has hit a parity event, HW can no longer write to host memory.
      As a result, Tx completions cannot be written to the host SB memory, and
      waiting for Tx completions eventually timeout.
      As driver is willing to delay as much as 1-2 seconds per Tx queue for its
      draining and this delay is sequential, the time to recover might greatly
      lengthen needlessly in case the recovery is done under multi-connection
      traffic.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d78a1f08
    • Nicholas Mc Guire's avatar
      sctp: consolidate local_bh_disable/enable + spin_lock/unlock to _bh variant · 489ce5f4
      Nicholas Mc Guire authored
      local_bh_disable() + spin_lock() is equivalent to spin_lock_bh(), same for
      the unlock/enable case, so replace the calls by the appropriate wrappers.
      Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      489ce5f4
  2. 15 Mar, 2016 2 commits
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · 1cdba550
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter/IPVS/OVS updates for net-next
      
      The following patchset contains Netfilter/IPVS fixes and OVS NAT
      support, more specifically this batch is composed of:
      
      1) Fix a crash in ipset when performing a parallel flush/dump with
         set:list type, from Jozsef Kadlecsik.
      
      2) Make sure NFACCT_FILTER_* netlink attributes are in place before
         accessing them, from Phil Turnbull.
      
      3) Check return error code from ip_vs_fill_iph_skb_off() in IPVS SIP
         helper, from Arnd Bergmann.
      
      4) Add workaround to IPVS to reschedule existing connections to new
         destination server by dropping the packet and wait for retransmission
         of TCP syn packet, from Julian Anastasov.
      
      5) Allow connection rescheduling in IPVS when in CLOSE state, also
         from Julian.
      
      6) Fix wrong offset of SIP Call-ID in IPVS helper, from Marco Angaroni.
      
      7) Validate IPSET_ATTR_ETHER netlink attribute length, from Jozsef.
      
      8) Check match/targetinfo netlink attribute size in nft_compat,
         patch from Florian Westphal.
      
      9) Check for integer overflow on 32-bit systems in x_tables, from
         Florian Westphal.
      
      Several patches from Jarno Rajahalme to prepare the introduction of
      NAT support to OVS based on the Netfilter infrastructure:
      
      10) Schedule IP_CT_NEW_REPLY definition for removal in
          nf_conntrack_common.h.
      
      11) Simplify checksumming recalculation in nf_nat.
      
      12) Add comments to the openvswitch conntrack code, from Jarno.
      
      13) Update the CT state key only after successful nf_conntrack_in()
          invocation.
      
      14) Find existing conntrack entry after upcall.
      
      15) Handle NF_REPEAT case due to templates in nf_conntrack_in().
      
      16) Call the conntrack helper functions once the conntrack has been
          confirmed.
      
      17) And finally, add the NAT interface to OVS.
      
      The batch closes with:
      
      18) Cleanup to use spin_unlock_wait() instead of
          spin_lock()/spin_unlock(), from Nicholas Mc Guire.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1cdba550
    • Nicholas Mc Guire's avatar
      netfilter: nf_conntrack: consolidate lock/unlock into unlock_wait · e39365be
      Nicholas Mc Guire authored
      The spin_lock()/spin_unlock() is synchronizing on the
      nf_conntrack_locks_all_lock which is equivalent to
      spin_unlock_wait() but the later should be more efficient.
      Signed-off-by: default avatarNicholas Mc Guire <hofrat@osadl.org>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      e39365be
  3. 14 Mar, 2016 24 commits