ARM: dts: add rk3288 i2s controller

Add dt for rk3288 i2s controller, since i2s clock pins and data pins
default to be GPIO, this patch also add pinctrl to mux them.

Tested on RK3288 board.

Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Merge tag 'keystone-dts' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/dt

Pull "Keystone DTS updates for v3.18" from Santosh Shilimkar"

- Add IRQ and GPIO nodes
- Fix SPI chip select
- Fix usb and pcie clock nodes

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

* tag 'keystone-dts' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
  ARM: dts: keystone: fix bindings for pcie and usb clock nodes
  ARM: dts: keystone: k2l: Fix chip selects for SPI devices
  ARM: dts: keystone: add dsp gpio controllers nodes
  ARM: dts: keystone: add keystone irq controller node
Merge tag 'samsung-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt

Pull "Samsung DT update for 3.18" from Kukjin Kim:

- un-use slot-node and deprecate the supports-highspped
  for dw-mmc
- remove old USB2 PHY node for exynos5250

- exynos4412-odroid-common
  enable PMIC interrupt and i2c improvements

- exynos5250-snow
  fold exynos5250-cros-common
  update display related nodes

- Peach Pit and Pi
  improve power scheme, add support max77802 PMIC,
  add hdmi regulators add thermistor, ISL29018 sensor,
  set i2c clock at 400kHz, add support Atmel touchpad,
  update display related nodes

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

* tag 'samsung-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: dts: remove old USB2 PHY node for exynos5250
  ARM: dts: remove old USB2 PHY node hook for exynos5250-arndale
  ARM: dts: update display related nodes for exynos5800-peach-pi
  ARM: dts: update display related nodes for exynos5420-peach-pit
  ARM: dts: update display related nodes for exynos5250-snow
  ARM: dts: Add support Atmel touchpad for exynos5800-peach-pi
  ARM: dts: Add support Atmel touchpad for exynos5420-peach-pit
  ARM: dts: Set i2c7 clock at 400kHz for exynos based Peach boards
  ARM: dts: Add ISL29018 sensor for exynos based Peach boards
  ARM: dts: Add thermistor dts fragment used by exynos based Peach boards
  ARM: dts: add hdmi regulators for exynos5420-peach-pit
  ARM: dts: add hdmi regulators for exynos5800-peach-pi
  ARM: dts: Add support max77802 PMIC for exynos based Peach boards
  ARM: dts: Improve Peach Pit and Pi power scheme
  ARM: dts: unuse the slot-node and deprecate the supports-highspeed for dw-mmc in exynos
  ARM: dts: Fold exynos5250-cros-common into exynos5250-snow
  ARM: dts: Fix MMC pinctrl for exynos5250-snow
  ARM: dts: ODROID i2c improvements for exynos4412-odroid-common
  ARM: dts: Enable PMIC interrupts for exynos4412-odroid-common
MAINTAINERS: add a third maintainer to mach-bcm

Add myself as a third maintainer to the mach-bcm code to increase the
chances the redundancy in the merging/reviewing process.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Scott Branden <sbranden@broadcom.com>
Acked-by: Brian Norris <computersforpeace@gmail.com>
Acked-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
ARM: multi_v7_defconfig: add missing Tegra options

Add all HW-support options from tegra_defconfig that are missing from
multi_v7_defconfig.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Merge branch 'next/defconfig' of git+ssh://ra.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into next/defconfig
arm, vt8500, LLVMLlinux: Use mcr instead of mcr% for mach-vt8500

The ASM below does not compile with clang and is not the way that the mcr
command is used in other parts of the kernel.

arch/arm/mach-vt8500/vt8500.c:72:11: error: invalid % escape in inline assembly string
        asm("mcr%? p15, 0, %0, c7, c0, 4" : : "r" (0));
            ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

There are other forms that are supported on different ARM instruction sets but
generally the kernel just uses mcr as it is supported in all ARM instruction
sets.

Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Tony Prisk <linux@prisktech.co.nz>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Merge tag 'at91-fixes-non-critical' of git://github.com/at91linux/linux-at91 into next/fixes-non-critical

Pull "Fixes non critical for AT91" from Nicolas Ferre:

- mmc pinmux for at91sam9263 was missing
- little fix of the old clock implementation

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

* tag 'at91-fixes-non-critical' of git://github.com/at91linux/linux-at91:
  ARM: at91/PMC: don't forget to write PMC_PCDR register to disable clocks
  ARM: at91: fix at91sam9263ek DT mmc pinmuxing settings
Revert "ARM: dts: hix5hd2: add wdg node"

This reverts commit 610bd8722ef40b649b51f01045c5d1903f41b583.

"ARM: dts: hix5hd2: add wdg node" causes a build breakage due to
an undefined constatns:

Error: arch/arm/boot/dts/hisi-x5hd2.dtsi:374.22-23 syntax error

(Don't you just looove the dtc error messages? They are so informative!)

Signed-off-by: Olof Johansson <olof@lixom.net>
SUNRPC: Add missing support for RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT

The flag RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT was intended introduced in
order to allow NFSv4 clients to disable resend timeouts. Since those
cause the RPC layer to break the connection, they mess up the duplicate
reply caches that remain indexed on the port number in NFSv4..

This patch includes the code that was missing in the original to
set the appropriate flag in struct rpc_clnt, when the caller of
rpc_create() sets RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT.

Fixes: 8a19a0b6cb2e (SUNRPC: Add RPC task and client level options to...)
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
NFS: Fabricate fscache server index key correctly

When fabricating a server index key for fscache, we should clear the index key
buffer before starting to fill it in, not in the middle.

Reported-by: James Pearson <james-p@moving-picture.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Steve Dickson <steved@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
net: stmmac: add Amlogic Meson glue layer

The Ethernet controller available in Meson6 and Meson8 SoCs is a
Synopsys DesignWare MAC IP core, already supported by the stmmac
driver.

This glue layer implements some platform-specific settings needed by
the Amlogic variant.

Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net: stmmac: meson: document device tree bindings

Add the device tree bindings documentation for the Amlogic Meson
variant of the Synopsys DesignWare MAC.

Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Merge branch 'stmmac'

Beniamino Galvani says:

====================
net: stmmac glue layer for Amlogic Meson SoCs

the Ethernet controller available in Amlogic Meson6 and Meson8 SoCs is
a Synopsys DesignWare MAC IP core, already supported by the stmmac
driver.

These patches add a glue layer to the driver for the platform-specific
settings required by the Amlogic variant.

This has been tested on a Amlogic S802 device with the initial Meson
support submitted by Carlo Caione [1].

[1] http://lwn.net/Articles/612000/
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
tcp: move logic out of tcp_v[64]_gso_send_check

In tcp_v[46]_gso_send_check the TCP checksum is initialized to the
pseudo header checksum using __tcp_v[46]_send_check. We can move this
logic into new tcp[46]_gso_segment functions to be done when
ip_summed != CHECKSUM_PARTIAL (ip_summed == CHECKSUM_PARTIAL should be
the common case, possibly always true when taking GSO path). After this
change tcp_v[46]_gso_send_check is no-op.

Signed-off-by: Tom Herbert <therbert@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
udp: move logic out of udp[46]_ufo_send_check

In udp[46]_ufo_send_check the UDP checksum initialized to the pseudo
header checksum. We can move this logic into udp[46]_ufo_fragment.
After this change udp[64]_ufo_send_check is a no-op.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net: Remove gso_send_check as an offload callback

The send_check logic was only interesting in cases of TCP offload and
UDP UFO where the checksum needed to be initialized to the pseudo
header checksum. Now we've moved that logic into the related
gso_segment functions so gso_send_check is no longer needed.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Merge branch 'gso_send_check'

Tom Herbert says:

====================
net: Eliminate gso_send_check

gso_send_check presents a lot of complexity for what it is being used
for. It seems that there are only two cases where it might be effective:
TCP and UFO paths. In these cases, the gso_send_check function
initializes the TCP or UDP checksum respectively to the pseudo header
checksum so that the checksum computation is appropriately offloaded or
computed in the gso_segment functions. The gso_send_check functions
are only called from dev.c in skb_mac_gso_segment when ip_summed !=
CHECKSUM_PARTIAL (which seems very unlikely in TCP case). We can move
the logic of this into the respective gso_segment functions where the
checksum is initialized if ip_summed != CHECKSUM_PARTIAL.

With the above cases handled, gso_send_check is no longer needed, so
we can remove all uses of it and the fields in the offload callbacks.
With this change, ip_summed in the skb should be preserved though all
the layers of gso_segment calls.

In follow-on patches, we may be able to remove the check setup code in
tcp_gso_segment if we can guarantee that ip_summed will always be
CHECKSUM_PARTIAL (verify all paths and probably add an assert in
tcp_gro_segment).

Tested these patches by:
  - netperf TCP_STREAM test with GSO enabled
  - Forced ip_summed != CHECKSUM_PARTIAL with above
  - Ran UDP_RR with 10000 request size over GRE tunnel. This exercised
    UFO path.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
net: sched: use pinned timers

While using a MQ + NETEM setup, I had confirmation that the default
timer migration ( /proc/sys/kernel/timer_migration ) is killing us.

Installing this on a receiver side of a TCP_STREAM test, (NIC has 8 TX
queues) :

EST="est 1sec 4sec"
for ETH in eth1
do
 tc qd del dev $ETH root 2>/dev/null
 tc qd add dev $ETH root handle 1: mq
 tc qd add dev $ETH parent 1:1 $EST netem limit 70000 delay 6ms
 tc qd add dev $ETH parent 1:2 $EST netem limit 70000 delay 8ms
 tc qd add dev $ETH parent 1:3 $EST netem limit 70000 delay 10ms
 tc qd add dev $ETH parent 1:4 $EST netem limit 70000 delay 12ms
 tc qd add dev $ETH parent 1:5 $EST netem limit 70000 delay 14ms
 tc qd add dev $ETH parent 1:6 $EST netem limit 70000 delay 16ms
 tc qd add dev $ETH parent 1:7 $EST netem limit 80000 delay 18ms
 tc qd add dev $ETH parent 1:8 $EST netem limit 90000 delay 20ms
done

We can see that timers get migrated into a single cpu, presumably idle
at the time timers are set up.
Then all qdisc dequeues run from this cpu and huge lock contention
happens. This single cpu is stuck in softirq mode and cannot dequeue
fast enough.

    39.24%  [kernel]          [k] _raw_spin_lock
     2.65%  [kernel]          [k] netem_enqueue
     1.80%  [kernel]          [k] netem_dequeue
     1.63%  [kernel]          [k] copy_user_enhanced_fast_string
     1.45%  [kernel]          [k] _raw_spin_lock_bh

By pinning qdisc timers on the cpu running the qdisc, we respect proper
XPS setting and remove this lock contention.

     5.84%  [kernel]          [k] netem_enqueue
     4.83%  [kernel]          [k] _raw_spin_lock
     2.92%  [kernel]          [k] copy_user_enhanced_fast_string

Current Qdiscs that benefit from this change are :

	netem, cbq, fq, hfsc, tbf, htb.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
ipr: fix compile failure

Fix a typo in the IPR_IOASC_HW_CMD_FAILED declaration.  Based on a patch
from Wen Xiong <wenxiong@linux.vnet.ibm.com>.

Signed-off-by: Christoph Hellwig <hch@lst.de>