Commit graph

691,473 commits

Author SHA1 Message Date
Rafał Miłecki
5d1f2d2c25 ARM: dts: BCM5301X: Set 5 GHz wireless frequency limits on Netgear R8000
Netgear R8000 is a tri-band home router. It has three BCM43602 chipsets
two of them for 5 GHz band. Both seem the same and their firmwares
report the same set of channels. The problem is due to hardware / board
design there are extra limitations that should be respected.

First PHY should be used for U-NII-2 and U-NII-3. Third PHY should be
used for U-NII-1. Using them in a different way may result in wireless
not working or in noticeably reduced performance. Basic version of this
info was provided by Broadcom employee, then it has been verified by me
using original vendor firmware (which has limitations hardcoded in UI).

This patch uses recently introduced ieee80211-freq-limit property to
describe these limitations at DT level.

Referencing PCIe devices in DT required specifying all related bridges.
Below you can see (a bit complex) PCI tree from R8000 that explains all
entries that I needed to put in DT.

0000:00:00.0		14e4:8012	Bridge Device
└─ 0000:01:00.0		14e4:aa52	Network Controller

0001:00:00.0		14e4:8012	Bridge Device
└─ 0001:01:00.0		10b5:8603	Bridge Device
   ├─ 0001:02:01.0	10b5:8603	Bridge Device
   │  └─ 0001:03:00.0	14e4:aa52	Network Controller
   ├─ 0001:02:02.0	10b5:8603	Bridge Device
   │  └─ 0001:04:00.0	14e4:aa52	Network Controller
   ├─ 0001:02:03.0	000d:0000	0x000000
   ├─ 0001:02:04.0	000d:0000	0x000000
   ├─ 0001:02:05.0	000d:0000	0x000000
   ├─ 0001:02:06.0	000d:0000	0x000000
   ├─ (...)
   ├─ 0001:02:1d.0	000d:0000	0x000000
   ├─ 0001:02:1e.0	000d:0000	0x000000
   └─ 0001:02:1f.0	000d:0000	0x000000

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:27 -08:00
Jon Mason
3107fa5bcf ARM: dts: NSP: Add SD/MMC support
Add SD/MMC support to the Broadcom NSP SVK and XMC.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:23 -08:00
Jon Mason
b6318107f4 ARM: dts: NSP: Add Ethernet to NSP XMC
Enable the ethernet in the NSP XMC (bcm958525xmc) device tree

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:22 -08:00
Jon Mason
5aeda7bf8a ARM: dts: NSP: Add and enable amac2
Add and enable the third AMAC ethernet interface in the device trees for
the platforms where it is present.  Also, enable amac1 on some of the
platforms where that was missing.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:21 -08:00
Jon Mason
d9ff8878bb ARM: dts: NSP: Add BCM958625K switch ports
Add the layout of the switch ports found on the BCM958625K reference
board. The CPU port is hooked up to the AMAC0 Ethernet controller
adapter.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:20 -08:00
Jon Mason
89b0a4c7da ARM: dts: NSP: Add QSPI support to missing boards
QSPI device tree entries are present in bcm958625k, but missing from
bcm958522er, bcm958525er, bcm958525xmc, bcm958622hr, bcm958623hr,
bcm958625hr, and bcm988312hr.  Duplicate the entry in bcm958625k for
all of those that are missing it (as they are identical).

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:19 -08:00
Jon Mason
fe6bf99997 ARM: dts: NSP: Correct NAND partition unit address
The NAND partition unit address does not match the other NSP device tree
files.  This change makes them uniform.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:18 -08:00
Jon Mason
1fd2bb6ceb ARM: dts: NSP: DT Clean-ups
The QSPI entry was added out of the sequental order that the rest of the
DTSI file is in.  Move it to make it fit in properly.  Also, some other
entries have been added in a non-alphabetical order in the DTS files,
making them different from the other NSP DTS files.  Move the relevant
peices to make it match.  Finally, remove errant new lines.

Signed-off-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:17 -08:00
Rafał Miłecki
a503cf0cbe ARM: dts: BCM53573: Specify USB ports of on-SoC controllers
Broadcom OHCI and EHCI controllers always have 2 ports each on the root
hub. Describe them in DT to allow specifying extra info or referencing
port nodes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:11 -08:00
Rafał Miłecki
a252ccd3d2 ARM: dts: BCM5301X: Specify all RAM by including an extra block
The first 128 MiB of RAM can be accessed using an alias at address 0x0.

In theory we could access whole RAM using 0x80000000 - 0xbfffffff range
(up to 1 GiB) but it doesn't seem to work on Northstar. For some reason
(hardware setup left by the bootloader maybe?) 0x80000000 - 0x87ffffff
range can't be used. I reproduced this problem on:
1) Buffalo WZR-600DHP2 (BCM47081)
2) Netgear R6250 (BCM4708)
3) D-Link DIR-885L (BCM47094)

So it seems we're forced to access first 128 MiB using alias at 0x0 and
the rest using real base address + 128 MiB offset which is 0x88000000.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Jon Mason <jon.mason@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:18:03 -08:00
Rafał Miłecki
849af7f458 ARM: dts: BCM5301X: Set GPIO enabling USB power on Netgear R7000
There is one GPIO controlling power for both USB ports.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:17:56 -08:00
Rafał Miłecki
0725c8421c ARM: dts: BCM5301X: Specify USB controllers in DT
There are 3 separated controllers, one per USB /standard/. With PHY
drivers in place they can be simply supported with generic drivers.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:17:48 -08:00
Rafał Miłecki
226cc02205 ARM: dts: BCM5301X: Fix LAN LED labels for Luxul XWR-3100
They were named incorrectly most likely due to copy & paste mistake.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:17:41 -08:00
Rafał Miłecki
7b790d3b29 ARM: dts: BCM5301X: Enable UART by default for BCM4708(1), BCM4709(4) & BCM53012
Every device tested so far got UART0 (at 0x18000300) working as serial
console. It's most likely part of reference design and all vendors use
it that way.

It seems to be easier to enable it by default and just disable it if we
ever see a device with different hardware design.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Jon Mason <jon.mason@broadcom.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2017-01-18 17:17:27 -08:00
Olof Johansson
560741d7d9 This pull request contains Broadcom ARM64-based SoC Device Tree changes for
4.11, please pull the following changes:
 
 - Jon adds Device Tree nodes for the GICv2m and PAXB/PAXC PCIe interfaces on
   the Northstar 2 SoCs, he also enables PAXC on the Northstar 2 SVK reference
   board. He also updates the reserved memory entry for the Nitro firmware,
   required to get the on-chip NICs to work. Finally he adds support for the
   BCM958712DxXMC reference board which is a subset of existing boards.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYfsSQAAoJEIfQlpxEBwcEGDUP+gLIXb7EJ7rzNOYskYuf5blU
 Uidfec5wbdu8Tnm4KbqWxopKdfvg13tx6YTwVjmtVwNP06iG9g9ytC3XA/YTYbLw
 Gs8S0QhMpPn9mJ94ix0+DUT8NwTFLxPS/veCqpQLG/usOkXkt8xR36DfA63C+qK/
 s6G87AZklsjUtkJn06FtrtvdyxRDHsl7Tj/7U+J9/mGoWdmZDbtooMP6GXDMS34N
 XDMU1L18Kr74R5YUyTotzu2D0y/CG1edSTGPpHbrVKnI8YGTkLHyL9V1anbGS7v0
 z+E+K6Lbe4M0xBqDVH/fOejwOxg30qDc4t9SDjMV813txZChwyVhNswNH6Nnn+3I
 zcN5bRs9fT71B7H2Q+zkqRDf0nLx6fJt3rvQ/iPHOHil3wgpa1yckHnAi11BE1gp
 hBEZPZkMw4ZPjtPc+CUoE9vWRzdJtoGYlE6dOxzz4UbP9QYmU0ai7F7OhxsQ+lKM
 LpVM7jAf+E4lRBsOSkKuV/3uDzLqwIKdEBqjYaSe83MIO1uC1XIgN2lHU4Q3BITx
 nyYdiJymr2AwXjyi8W7nN9neAmDiNlfi7fPZvYy0crd8GWn3uoROBLR7NoL+alPo
 eBjiKJe6WJen+0VQR67a17kZ7WCkqCR0QUrXZTl8yVdzDZWaPHLXcCR8dulYwvMT
 zvT+oFf7yA+DB3bCykd5
 =JBHv
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-4.11/devicetree-arm64' of http://github.com/Broadcom/stblinux into next/dt64

This pull request contains Broadcom ARM64-based SoC Device Tree changes for
4.11, please pull the following changes:

- Jon adds Device Tree nodes for the GICv2m and PAXB/PAXC PCIe interfaces on
  the Northstar 2 SoCs, he also enables PAXC on the Northstar 2 SVK reference
  board. He also updates the reserved memory entry for the Nitro firmware,
  required to get the on-chip NICs to work. Finally he adds support for the
  BCM958712DxXMC reference board which is a subset of existing boards.

* tag 'arm-soc/for-4.11/devicetree-arm64' of http://github.com/Broadcom/stblinux:
  arm64: dts: NS2: add support for XMC form factor
  arm64: dts: NS2: reserve memory for Nitro firmware
  arm64: dts: NS2: enable PAXC on NS2 SVK
  arm64: dts: NS2: enable GICv2m for PAXB/PAXC interfaces

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:30:43 -08:00
Olof Johansson
558d8181a8 Aspeed devicetree updates for 4.11
This introduces the first OpenPower Power9 BMC system, Romulus. Romulus is
 based on the ast2500 SoC from Aspeed.
 
 These commits also add newly upstreamed drivers to the Palmetto BMC and ast2500
 eval board. We now have working network, ipmi bt, gpio and pinmux on all platforms.
 
   ARM: dts: aspeed: Add Romulus BMC platform
   ARM: dts: aspeed: Add ftgmac100 to g4 and g5 platforms
   ARM: dts: aspeed: Correct palmetto device tree
   ARM: dts: aspeed: Reserve framebuffer memory
   ARM: dts: aspeed-g5: Add gpio controller to devicetree
   ARM: dts: aspeed-g5: Add syscon and pin controller nodes
   ARM: dts: aspeed-g5: Add LPC Controller node
   ARM: dts: aspeed-g5: Add SoC Display Controller node
   ARM: dts: aspeed-g4: Add gpio controller to devicetree
   ARM: dts: aspeed-g4: Add syscon and pin controller nodes
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYfpvhAAoJEGt2WQeBR3CeDxcQAKrPdsPz7guceN9j6I9JU9Ys
 NBC0SHY0uavqidvRSOyXSbYp/uWEd+A9jAlaj+w9mfI9y+7gsmYOjtdAdY80L8RB
 XLUZdKjwoSxIv80YLVnBfz+jPwQRPkzSihqgy+bFr+BLe5n9S/QRDJfOiUfu37X0
 SM36ax1Tc6/LDaUa8tqrSE2IpCPa0h0ewvw9i2581zLznTWaY/JwJMqeJzl98+8P
 Q4P8PJYUz/KmjTya4L+NSmJ2ng2TSWcsY7fz3a4hI5UZYsTKsppnEpFlADIWTTLI
 65AfGuMahpXiHWr4v/YPVgpHwTlaVaTGrbyFrBznATkx+rud1wmihkMAmqLylgfo
 5nui4yLZSaELB/Yc2I0lIoEZJiqLIOMKw2vuJUH7A6r+yDIMzpAYfkTOsfjAk//I
 3HPVEsnEP+ZwhhDK2s9ki5B3EV0BOVxdMROSpKvcOhxEuebv6MioNU1mTuLFxWm9
 UDqjuUsEK2LfzJqO20pnEtKOAUBlCYFvIJ5i6bSi+O7SZACA6++0WNIoomAWHFjY
 ukm4dvjBq93tVr8NC7pbIxmk1WAmpI7BLWWkTNyukw3IuaF3SZar3+V23ODEOm0y
 P3JfIFxwmqwsZXZWGMKD6krFB541h/J8ag0kydxZXHrvc1Cm+mFER3hyEEk0HYrS
 ik2OWkXI90IeZHXkD6DD
 =BeSl
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-4.11-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into next/dt

Aspeed devicetree updates for 4.11

This introduces the first OpenPower Power9 BMC system, Romulus. Romulus is
based on the ast2500 SoC from Aspeed.

These commits also add newly upstreamed drivers to the Palmetto BMC and ast2500
eval board. We now have working network, ipmi bt, gpio and pinmux on all platforms.

* tag 'aspeed-4.11-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed:
  ARM: dts: aspeed: Add Romulus BMC platform
  ARM: dts: aspeed: Add ftgmac100 to g4 and g5 platforms
  ARM: dts: aspeed: Correct palmetto device tree
  ARM: dts: aspeed: Reserve framebuffer memory
  ARM: dts: aspeed-g5: Add gpio controller to devicetree
  ARM: dts: aspeed-g5: Add syscon and pin controller nodes
  ARM: dts: aspeed-g5: Add LPC Controller node
  ARM: dts: aspeed-g5: Add SoC Display Controller node
  ARM: dts: aspeed-g4: Add gpio controller to devicetree
  ARM: dts: aspeed-g4: Add syscon and pin controller nodes

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:25:03 -08:00
Olof Johansson
37b3785b13 Apseed SoC updates for 4.11
One commit that selects the newly upstreamed pinctrl driver for all
 SoCs.
 
   ARM: aspeed: Select pinctrl drivers
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYfprvAAoJEGt2WQeBR3CePVAP/RSVB7PzUqzDDYt7u6sdmjf/
 UrmQtl5IO8Q71pHeNu8QFJom3cu7QDFxxZdFQM7/BqD/6f3mEXESi3bhQPGHaW33
 LIKrGWahSRrPnjQhSq15MzZtxdTKGms/ZhCI6nSXVMEAtIOt6XSunHpFFLzkF1ZH
 xnsBO8WHv3HBFcRovsGkrNOHBbmOwMY/uXUVKJ0ECvHmSjqy/mzvvl55G7rLea4j
 H850rjzywwNZ7qvZtCK3G4F4r1j4nofxgglSR+iCE24K0MGzd9Rzs0w62K/GhXse
 WYEasXeBafIKZlQlWQkPgNOxXXAdNuZ4ywPoxkNuw1MX72vwRIXFAkuSELGcjdjL
 J3yZEhuKLxmyhcaXGxR99w24UgEaO4ebehIwS5Z2mR26Lcp1EeaN8X7+iSFlLUuE
 ylSl7wQY2+ZPZ6wt6tp+F06Wz2wJgHYqqt9cotHiIvkhE1A7X2cX5wNJIH7vBWrJ
 +nxBWz3zPa3osz23dU/sUWZPILbTfGUcOwUzFYHS89hP5z9i+Avzs3j3MOYkBvYf
 czwfMAvh1oLIiMNeTUUOh1kFiJZOgaryrNOD5L0bjapFAIJiXWwIU2kzMQ7pdAES
 iY4HgW7msQupPzGjZ2vyWW0pdGAvb1+TvwUGQ7IxcRSPEOo0v6gnmeUSZ7CIo0HK
 6E1pbdC5Qhkj7ruSaxEs
 =2mLE
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-4.11-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into next/soc

Apseed SoC updates for 4.11

One commit that selects the newly upstreamed pinctrl driver for all
SoCs.

* tag 'aspeed-4.11-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed:
  ARM: aspeed: Select pinctrl drivers

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:23:58 -08:00
Olof Johansson
b5f8c90c75 Aspeed defconfig updates for 4.11
Just the one commit that updates our defconfigs with network (ftgmac100
 and ncsi), bt ipmi, gpio and ncsi.
 
   ARM: configs: Update Aspeed with new drivers
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYfpo0AAoJEGt2WQeBR3Ce6WoQAKpz7FK++IVU77kx5OX1M16n
 DR5MfrAFjufFpyDy1RBKeLcWvTJLgxzkEkNz/+UqLBy2KTpEnbIBPhRq+D/9GeWV
 pdRzzm+jYyrbaYzZCVlyMxW92TD6fbgY2l60/Z/LGtzGSE5TeDjKkxGrWnxoFA1r
 udFFwZZ1SC3A7tAy5YeGvbgD1Tkv6I/6FqUQ+Ze20v/03XraJxe3vYExFe3rR532
 IJ5L9By0GLgdbHIxII1UKSpORiGzqJtum6ErO/7LypxXU9wlFChRrGzyQIKPuWrJ
 chvCHtTXTujrzIjSxrBJvuZsHDlB4IkzRX80VArk1oCqHCojtvBpyPkLzg3c7H//
 Ba+L++FoBKJNngJn0X5DFQhOQsq9NQqT+rm+JvCOL+3/VLBdH6Dt8Ic/QNwussrv
 Y1Snb8h/jW9NbSs0q1AuwraraRgPUw/dD7BdnuEYkAMCn8u+aufp2/Xs47vALZ+B
 gJJYW0P7SyWZd9d13Q/B6aO2c0z5V+8bnxf76pr6Jvu7j72sDVFAIyC4VM+yMV7P
 AWuiOf9h9kTMofI/fN7CsNL7DJXLjfVTcpqHQzpb4OpVJ2WZuLVFBFkOr2M5F2UF
 csDyO7gj4DgV9HK21lR5gpkm+AlS8Kg9PbB5vpOv02d3UT+ip+OLg3Oa77hOdCSB
 FJIK9NjNEEdzb5tvjnIe
 =307A
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-4.11-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into next/defconfig

Aspeed defconfig updates for 4.11

Just the one commit that updates our defconfigs with network (ftgmac100
and ncsi), bt ipmi, gpio and ncsi.

* tag 'aspeed-4.11-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed:
  ARM: configs: Update Aspeed with new drivers

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:19:20 -08:00
Olof Johansson
4b9ea20078 defconfig for 4.11:
- Add driver support for the Axentia TSE-850
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEl0I5XWmUIrwBfFMm2KKDO9oT4sIFAlh+dtsACgkQ2KKDO9oT
 4sJPIA//Uxy22FHvrU91V8Wi3Kn78sqQf5TW/80N7GH/oqDdl10YCYFVcdXzJ+7v
 h06bXYg3fBiEhjRXBemEyqv+OpkkB7avWC6utu2gi+QHTvB/Ugoor93QlDAP0e/b
 ICjG83JEM2QToNWi7RY/dhxLP7vPAAGGTsp0cj9ekd70GWJvglAr5cMevoUsoItt
 l7WzUJrBvrZEoMdRrvKEAXzIUU5EDZX2AKg7u3opZRQAmiRchU1FsI8mDnYpZ++d
 RclWf1PTZiMtoVsC4OEMYTAMJbqChwpKjwBZzd8fee6HXxnAaHxIjNiMAA93S/Ys
 Lvmn8rLTaACfyrfXKDvL3smX/GSw16rf+dAxL+9f1AaCpLxUxIGLrpHhbC/PnkpA
 60USMMAf2R1kIWFGwfpIxH/m9MWyK3xcJWTCW19zZ26IoFk8xbkNMWcdRpkLiM99
 eTuTdJg55M4Ccry9sSn2MzCxx25u8VmLHgiC7RAZ7QdhZfgDra+Qw/PT3kfN0Cvy
 B3w1ChPFI5ypg9ZHvUbSYKZpg6fkl5PUxmHlDgUXAvYaXFeumhlDCq8E9uzPZn86
 NVFbxlf5pKqTxenTxOsDeH9nibiDHNBiZWK0Ix2Z2lwWz99R7cofp3K1ajxkBOS4
 DcFPsExLXHdAD3s4I9+mZ+PRbSc9UmGyuwUIG+in9um6HKMAjFA=
 =fZjs
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.11-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/defconfig

defconfig for 4.11:

 - Add driver support for the Axentia TSE-850

* tag 'at91-ab-4.11-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  ARM: sama5_defconfig: add support for the Axentia TSE-850 board

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:18:37 -08:00
Olof Johansson
28e603b2ad DT for 4.11:
- New boards: Axentia TSE-850, sama5d36ek CMP
  - new device definitions for sama5d2
  - Fix DMA allocation on sama5d4 for secure peripherals
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEl0I5XWmUIrwBfFMm2KKDO9oT4sIFAlh+dqwACgkQ2KKDO9oT
 4sIAlg//c2K9kuxejY/cVaW6gWZp/vV7RKaoTtMqzPkqOrYpu3qnIV08Gcsp7stM
 2bd79C4+76bAV6Zqsxv3tNags4uh8Jk/moEDZ+YNN70K1cX9FEgTClvsrOgsV35D
 sKYk8cgW8x1MVaHU0XuLQWhcDWLLwQaWlBP/zF1hvGWWcXK68FmGoX6Qn1+ybTxO
 RKn7AV1yM7Yf32TXsES1ST4QIB1dc6R3lzf4NfO7DhfHlnybk92hzlZyTRfS8Bxy
 jU64mzgD+QUKthrLZsd3uqCih97mZp/+pnO16bJgCyBtAYFfcU6vr1tRVmI6i3k2
 9c4c2BPQDzfxa+NBfzQHC+3EQVXHlOpV+9QrphralI63Df+JuRnXhkdooUzCnGxl
 qFtWyuAM8UImWoEkf+32GsljSL41CuPs49jM1nbbmA5h65YpH6YNsE6filvO3R3U
 FCgBTEYvGgp4uRHrg08koob9xmJPP7vPfkU9Qtua5q/oUkY/kn2RC+EwVt1jZK6T
 IXuepulG/u+kZ5lBL5NukMbizj1tCq4+0EvJPHoifvqavbl2V4fsYCPbrBPvEOUQ
 XaM4O67+a+oiS7vphqRuLNNTl6XMxpT3D8WZwQehOycOakztNeznU6zHxS4zabtY
 EkSY94uWuB5DDvc/GAvxAVVnSK9ivStXyeuQawIxaAMRPxm5Sls=
 =AS8q
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.11-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt

DT for 4.11:

 - New boards: Axentia TSE-850, sama5d36ek CMP
 - new device definitions for sama5d2
 - Fix DMA allocation on sama5d4 for secure peripherals

* tag 'at91-ab-4.11-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  ARM: dts: at91: add devicetree for the Axentia TSE-850
  ARM: dts: at91: add dts file for sama5d36ek CMP board
  ARM: dts: at91: sama5d2: add ssc0 definition
  ARM: dts: at91: sama5d2 Xplained: use DMA for UART3
  ARM: dts: at91: sama5d2: move UART3 to DMA1
  ARM: dts: at91: add dma1 definition to sama5d2
  ARM: dts: at91: sama5d4 Xplained: enable UART1 node with DMA
  ARM: dts: at91: sama5d4: change DMA allocation for secure peripherals
  ARM: dts: at91: sama5d3_uart: fix reg sizes to match documentation

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:17:26 -08:00
Olof Johansson
0ff6454b2a Drivers for 4.11:
- atmel-ebi: Fix ns <-> cycles conversions
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEl0I5XWmUIrwBfFMm2KKDO9oT4sIFAlh+dvwACgkQ2KKDO9oT
 4sJ1CA//YspN0Xv556gwHauQQXgM8uvwb2hF2sVHNEOuAnLaeEi4sOYgsWBN1n6B
 /Z/dErjkg/4uCEnhOrxDaoYcwjiayqB+dEFWf7LrONASvbubbOJC4qIpuzs367Do
 d6l5Wf1ctOS/yjbLefynCd4cb8omfdTg0uHhLBLWV+ezgjydmuupN7+t84LW4b9b
 7VXgAS/IfuWY2+W3Ql752moC0siAfApLMvY2neD80VyXomwEA6YGg8iDt8HUhHJE
 5DikU8CK4ooD27W38nAg/jJBGBzE7FUUWlUu8qon0GpRfWfMieFCKt48mj3JqrgE
 UhpN0KU+04z3yZiZAzqx/SLMuFYpaec6tKFxnIQqDW+piL6LeWDgpssAJns6gHi9
 1Tz5oiRdLiU37cB2SBiMv/QgTyVZzGhwd3bhooYlVIMRr4KvWKUW0KjLDBBbFYRq
 6/zhYdMJh2+7uNJvugsd+9B7ad5HgxPssHr/+5RrYmI02jyTRJZD0twc85wKj8ok
 FWklEw87nePVdHRT6jEm7AGToPQ+Zpeh/nIoxpAs/oy6qcdNFyqDBkkcwgznZcNu
 kkUk8sItl+4A+R881t1Fh0GcAhTM/Ifw/G7VY9vxBeA1xFTwrHOm8D6wKj1lllx/
 0lxJ1kqmSwF+cdKeOsF2tl47n+0JtjIBC2j0QlQPnSnYqGR1fxg=
 =iuNS
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.11-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/drivers

Drivers for 4.11:

 - atmel-ebi: Fix ns <-> cycles conversions

* tag 'at91-ab-4.11-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  memory/atmel-ebi: Fix ns <-> cycles conversions

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:16:59 -08:00
Olof Johansson
815133987c SoC for 4.11:
- small cleanup
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEl0I5XWmUIrwBfFMm2KKDO9oT4sIFAlh+dewACgkQ2KKDO9oT
 4sIF9Q//YGny2iv1W5JHHAOwrSMOkS1Po5LOAPZVS36JsqnxIbCEooWJd7FoqhDg
 jeaBU33n0BsJA8TW0EpxmeuKXnwo428K9R+LpRxII5BVT7sM517X/ojfMBrlmshu
 zBh+6HNoAzKAQ8EaoQbZwK846oQOeqErhH8rdk0HxesbU8QgD0bP2/7HjdAKYEGM
 g0O+ZULMupjR/nlKv7UeZbijlVv50qNTdQ+jedDye03cOPCOdAftQNZ9Sg7KMow5
 q1yh30zFSy9ShnujvP5wtJiZI3BzONEWXMXbdajmuOOjNANoURvN2MUt8303l2Tn
 pwGowyk07YKmBKYx7+zl3t+GeH2EWXfA5oC71Bnbi/Bg36tRnp0CgGz9R4Lgk/O8
 /MQRCHT3cHiOAHtEBrRTFfzpnoDJ/r58V7bqFm2hlG54G2mXlKnArK1xxiyh7AJx
 cf8gVCQoOEV7vadlXP+yzfcp7/FZsgp/xO4A7ge1DX19O8giyot2eOBITwz0iA/e
 AF+PbQXgvYAqVpmykbthzMJBuVsApIN3B8PLTahsO2mDOLF1XL42QAUXc7kGSQYV
 hl8E3oY3d+Vy6PuV3Z09/ruAuH1wOsN/5OkvooGASRJbV0Dq+AZKaVn9HwAhyZV/
 F/+fX8uxAdFhNs9klLyPHRQxcdw8hg/2n6nfI65i24pFlyh8lpM=
 =ODG9
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.11-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/soc

SoC for 4.11:

 - small cleanup

* tag 'at91-ab-4.11-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  ARM: at91: pm: remove useless extern definition

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:16:06 -08:00
Olof Johansson
992ffc3eb1 ARMv8 Vexpress/Juno DT updates for v4.11
1. Addition of Coresight support on Juno R1 and R2 variants
 
 2. Addition of STM(System Trace Macrocell) support on all Juno variants
 
 3. Removed incorrect nesting of dtsi files
 
 4. Removed untested USB hub only available on initial Juno R0 motherboard
 
 5. Added ETR SMMU power domain and dma-ranges property
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJYf3YFAAoJEABBurwxfuKYq2YP/3Yknoe0K+h6c0N7yyQVWsbd
 5qbY3xcbQDh7JsDz2AuTeRJtgP4V6cUqe9LbNF4Z0myOmrNSLhPNLKxm9OCsbxty
 bL7rSIXjL3dPCm4MENFw3yNzgIukZGTyFrtDMbYcqxXlSo5JMWEn/yztBeP1onmn
 aFiy1FBRtkuAe5gVMAwIz1oK/0eCBqlKfa9SXq9dmCXKv5fuq51aMr5dlAq8Q5ja
 RvxDaNvh8P4Vh/DVZrRBAmhA5uw3dovgAQiSIg56TermEk64UOGksv1pGE4ycMFU
 TOQ5YuxqT2J7HLUy2TqwZhaNcblGlG98fpqLCMWC1r4GkO0KwGimnXTGSiZxJIMk
 0/quwCO6PguHacCGV+PUV7HH3WriH0REjbKEuZ0louYBtjHj1rvZJLC0fO6Mt2i7
 EDdVqiPwfAAbHo6zrK1Axz1Q7FTEYRcvaZV5QXmz9rLjUFMFtzHg7r+L21TAtxoq
 Q9l589/vO5f8t9B6notXV1hgg0RRI+jGH8KeDO2lvNfpXgGC3BkwnWcJlv2AkhgG
 +TrpOtkXbdsKee6G0mW/W1vtooDh/w7IKU7ncaPp+9Sq/uvkKYnDS9ubfAkgIjwT
 turauXHIeFS6AID+Y+O2/q/hDve0eNXKFV6CheZHgDKEXAp+LCQm7Wtd8HYNuG3S
 FBnUYKVEswLaFDUUv8Wk
 =VeiR
 -----END PGP SIGNATURE-----

Merge tag 'juno-updates-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into next/dt64

ARMv8 Vexpress/Juno DT updates for v4.11

1. Addition of Coresight support on Juno R1 and R2 variants
2. Addition of STM(System Trace Macrocell) support on all Juno variants
3. Removed incorrect nesting of dtsi files
4. Removed untested USB hub only available on initial Juno R0 motherboard
5. Added ETR SMMU power domain and dma-ranges property

* tag 'juno-updates-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  arm64: dts: juno: remove motherboard USB node
  arm64: dts: juno: add ETR SMMU power domain
  arm64: dts: juno: add dma-ranges property
  arm64: dts: juno: add missing CoreSight STM component
  arm64: dts: juno: add CoreSight support for Juno r1/r2 variants
  arm64: dts: juno: refactor CoreSight support on Juno r0
  arm64: dts: juno: remove dtsi nesting inside tree structure

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:14:29 -08:00
Olof Johansson
e47a8b1729 Fixes for omaps for v4.10-rc cycle. Mostly a DMA regression fix for
omap1, and then a handful of trivial fixes for boards and devices to
 work:
 
 - Fixes TI wilink bluetooth strange platform data baud rate
 
 - Remove duplicate pinmux line for am335x-icev2
 
 - Fix omap1 dma regression
 
 - Fix uninitialized return value for wkup_m3_ipc_probe()
 
 - Fix Ethernet PHY binding typo for dra72-evm
 
 - Fix init for omap5 and dra7 sata ports
 
 - Fix mmc card detect pin for Logic PD SOM-LV
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAlh+lYcRHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXMYFg//TvDU9XADwlzHt4IbP8fFilVcmB1R3LeI
 +PYJvPiXqlN8T+CnQ1R2ZiI9GQoP8YLwF5UFcIsAVZMxg8l2XpJa0mjd1d/yK7o3
 zuYcUx+rEGRqW75SDYqw5VPtjtNHrumjYjipaC2GFIu3Wr9UfFDxcKU8h5mcARQ4
 JlyqO/Dn7/defQq0Yg2v5CcHjMz+5d/A9iAVF3kYelXLwX+wMnlQxv5H0FKLodz8
 nZ14yR5hyANhGbVyyoapKQWj+uEh205FoBoZW8ws+VCRHsswepA3m05w53LaElBs
 rCdA7HkRjdp3XkelXssclMdRpB42/LieouhBbtyaBNhaVPfUH6EBGcVB2cIbBmWU
 6jauifjyvEXl0hni+85eB1A1sTIsofEcvhHBBIwlZ1tyeVoPEVT/3Ito+k4W2iQk
 K4nSi/YuvLBBGKYUoFSovaEXj1uydG0PrNZ3cYGCstjwOvwbCuu2AMWP62jPlhD2
 SDHqrEaojyRynvNi9Bus+LJGREf3dcnLCytEyErsQsRglkiOigr6bgGoSyDxkFuk
 1HtYgArspeRB4IdOSX8PXP93K3sARoyxTWwu2f8HZxoqHraOjPZiwfZ3KS0MnZnh
 bMIlCTx7YKOI4dBHrgDoLJZRH9P9Io9sCnaJ+Jkz4dXUOJEsf4QA0wjCFHhNQa7h
 u4ZAQVlLgpU=
 =VJaM
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v4.10/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes

Fixes for omaps for v4.10-rc cycle. Mostly a DMA regression fix for
omap1, and then a handful of trivial fixes for boards and devices to
work:

- Fixes TI wilink bluetooth strange platform data baud rate
- Remove duplicate pinmux line for am335x-icev2
- Fix omap1 dma regression
- Fix uninitialized return value for wkup_m3_ipc_probe()
- Fix Ethernet PHY binding typo for dra72-evm
- Fix init for omap5 and dra7 sata ports
- Fix mmc card detect pin for Logic PD SOM-LV

* tag 'omap-for-v4.10/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: dts: omap3: Fix Card Detect and Write Protect on Logic PD SOM-LV
  ARM: dts: OMAP5 / DRA7: indicate that SATA port 0 is available.
  ARM: dts: dra72-evm-revc: fix typo in ethernet-phy node
  soc: ti: wkup_m3_ipc: Fix error return code in wkup_m3_ipc_probe()
  ARM: OMAP1: DMA: Correct the number of logical channels
  ARM: dts: am335x-icev2: Remove the duplicated pinmux setting
  ARM: OMAP2+: Fix WL1283 Bluetooth Baud Rate

Signed-off-by: Olof Johansson <olof@lixom.net>
2017-01-18 16:11:03 -08:00
Bhumika Goyal
b2ec9efc1f pwm: constify pwm_ops structures
Declare pwm_ops structures as const as they are only stored in the ops
field of a pwm_chip structure. This field is of type const struct pwm_ops
*, so pwm_ops structures having this property can be declared as const.
Done using Coccinelle:

@r1 disable optional_qualifier@
identifier i;
position p;
@@
static struct pwm_ops i@p={...};

@ok1@
identifier r1.i;
position p;
struct pxa_pwm_chip pwm;
struct bfin_pwm_chip bwm;
struct vt8500_chip vp;
struct imx_chip icp;
@@
(
pwm.chip.ops=&i@p
|
bwm.chip.ops=&i@p
|
vp.chip.ops=&i@p
|
icp.chip.ops=&i@p
)

@bad@
position p!={r1.p,ok1.p};
identifier r1.i;
@@
i@p

@depends on !bad disable optional_qualifier@
identifier r1.i;
@@
+const
struct pwm_ops i;

File size details:

   text	   data	    bss	    dec	    hex	filename
   1646	    328	      0	   1974	    7b6	drivers/pwm/pwm-imx.o
   1742	    224	      0	   1966	    7ae	drivers/pwm/pwm-imx.o

   1941	    296	      0	   2237	    8bd	drivers/pwm/pwm-pxa.o
   2037	    192	      0	   2229	    8b5	drivers/pwm/pwm-pxa.o

   1946	    296	      0	   2242	    8c2	drivers/pwm/pwm-vt8500.o
   2050	    192	      0	   2242	    8c2	drivers/pwm/pwm-vt8500.o

The drivers/pwm/pwm-bfin.o file did not compile.

Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2017-01-19 00:38:17 +01:00
Scott Branden
5bf22ff32e pwm: bcm-iproc: Update dependencies for compile-test
Add dependency on COMMON_CLK and allow COMPILE_TEST for broader compile
coverage. Default to Y for IPROC SoCs. This allows the driver to simply
be enabled by selecting PWM.

Signed-off-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
[thierry.reding@gmail.com: reword commit message]
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2017-01-19 00:38:17 +01:00
Mika Westerberg
bccec89f0a pwm: pca9685: Allow any of the 16 PWMs to be used as a GPIO
The PCA9685 controller has full on/off bit for each PWM channel. Setting
this bit bypasses the PWM control and the line works just as it would be a
GPIO. Furthermore in Intel Galileo it is actually used as GPIO output for
discreet muxes on the board.

This patch adds GPIO output only support for the driver so that we can
control the muxes on Galileo using standard GPIO interfaces available in
the kernel. GPIO and PWM functionality is exclusive so only one can be
active at a time on a single PWM channel.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2017-01-19 00:38:16 +01:00
Wei Yongjun
8dca4a41f1 pinctrl/amd: Drop pinctrl_unregister for devm_ registered device
It's not necessary to unregister pin controller device registered
with devm_pinctrl_register() and using pinctrl_unregister() leads
to a double free.

Fixes: 3bfd44306c ("pinctrl: amd: Add support for additional GPIO")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2017-01-19 00:15:09 +01:00
Vineet Gupta
e497c8e52a ARCv2: IOC: Use actual memory size to setup aperture size
vs. fixed 512M before.

But this still assumes that all of memory is under IOC which may not be
true for the SoC. Improve that later when this becomes a real issue, by
specifying this from DT.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2017-01-18 14:52:43 -08:00
Jaechul Lee
72d1f2346d Input: tm2-touchkey - add touchkey driver support for TM2
This patch adds support for the TM2 touch key and led functionality.

The driver interfaces with userspace through an input device and reports
KEY_PHONE and KEY_BACK event types. LED brightness can be controlled by
"/sys/class/leds/tm2-touchkey/brightness".

Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Reviewed-by: Andi Shyti <andi.shyti@samsung.com>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Tested-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2017-01-18 14:50:23 -08:00
Vineet Gupta
8c47f83ba4 ARCv2: IOC: Adhere to progamming model guidelines to avoid DMA corruption
On AXS103 release bitfiles, DMA data corruptions were seen because IOC
setup was not following the recommended way in documentation.

Flipping IOC on when caches are enabled or coherency transactions are in
flight, might cause some of the memory operations to not observe
coherency as expected.

So strictly follow the programming model recommendations as documented
in comment header above arc_ioc_setup()

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2017-01-18 14:48:33 -08:00
Jens Axboe
38dbb7dd4d blk-cgroup: don't quiesce the queue on policy activate/deactivate
There's no potential harm in quiescing the queue, but it also doesn't
buy us anything. And we can't run the queue async for policy
deactivate, since we could be in the path of tearing the queue down.
If we schedule an async run of the queue at that time, we're racing
with queue teardown AFTER having we've already torn most of it down.

Reported-by: Omar Sandoval <osandov@fb.com>
Fixes: 4d199c6f1c ("blk-cgroup: ensure that we clear the stop bit on quiesced queues")
Tested-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-01-18 15:37:27 -07:00
Vineet Gupta
d4911cdd32 ARCv2: IOC: refactor the IOC and SLC operations into own functions
- Move IOC setup into arc_ioc_setup()
 - Move SLC disabling into arc_slc_disable()

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2017-01-18 14:35:10 -08:00
Neil Armstrong
b949165c86 ARM64: dts: meson-gx: Add HDMI HPD/DDC pinctrl nodes
Add pinctrl nodes for HDMI HPD and DDC pins modes for Amlogic Meson GXL
and GXBB SoCs.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2017-01-18 14:35:07 -08:00
Andreas Färber
2fbbc4bf69 ARM64: dts: meson-gxbb-vega-s95: Add LED
There is one blue LED on the front of the device. Keep it lit and
configure it as panic indicator.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2017-01-18 14:35:04 -08:00
Martin Blumenstingl
261e1d5cc5 ARM64: dts: meson-gx: add the serial CTS and RTS pin groups
This adds pinctrl group nodes for the CTS and RTS pins of each serial
controller. This makes it possible to enable the CTS and RTS pins which
are controlled by the serial controller hardware (through the meson_uart
driver).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2017-01-18 14:35:01 -08:00
Martin Blumenstingl
890a96a257 ARM64: dts: meson-gx: add the missing uart_AO_B
This adds the missing node for the uart_AO_B port to the meson-gx.dtsi
(as this is supported by GXBB, GXL and GXM) along with the required
pinctrl pins. This is required as some boards are using it (the boards
from the Khadas VIM series for example have it exposed on the pin
headers).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2017-01-18 14:34:50 -08:00
Guenter Roeck
aa6f922221 Input: sis_i2c - drop unnecessary call to i2c_set_clientdata
There is no call to i2c_get_clientdata() or dev_get_drvdata().
Drop the unnecessary call to i2c_set_clientdata().

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2017-01-18 14:29:57 -08:00
Tobias Klauser
4a7c972644 net: Remove usage of net_device last_rx member
The network stack no longer uses the last_rx member of struct net_device
since the bonding driver switched to use its own private last_rx in
commit 9f24273837 ("bonding: use last_arp_rx in slave_last_rx()").

However, some drivers still (ab)use the field for their own purposes and
some driver just update it without actually using it.

Previously, there was an accompanying comment for the last_rx member
added in commit 4dc89133f4 ("net: add a comment on netdev->last_rx")
which asked drivers not to update is, unless really needed. However,
this commend was removed in commit f8ff080dac ("bonding: remove
useless updating of slave->dev->last_rx"), so some drivers added later
on still did update last_rx.

Remove all usage of last_rx and switch three drivers (sky2, atp and
smc91c92_cs) which actually read and write it to use their own private
copy in netdev_priv.

Compile-tested with allyesconfig and allmodconfig on x86 and arm.

Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Jay Vosburgh <j.vosburgh@gmail.com>
Cc: Veaceslav Falico <vfalico@gmail.com>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: Mirko Lindner <mlindner@marvell.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Acked-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 17:22:49 -05:00
Keith Busch
88a7503376 blk-mq: Remove unused variable
Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-01-18 15:14:15 -07:00
Daniel Borkmann
d407bd25a2 bpf: don't trigger OOM killer under pressure with map alloc
This patch adds two helpers, bpf_map_area_alloc() and bpf_map_area_free(),
that are to be used for map allocations. Using kmalloc() for very large
allocations can cause excessive work within the page allocator, so i) fall
back earlier to vmalloc() when the attempt is considered costly anyway,
and even more importantly ii) don't trigger OOM killer with any of the
allocators.

Since this is based on a user space request, for example, when creating
maps with element pre-allocation, we really want such requests to fail
instead of killing other user space processes.

Also, don't spam the kernel log with warnings should any of the allocations
fail under pressure. Given that, we can make backend selection in
bpf_map_area_alloc() generic, and convert all maps over to use this API
for spots with potentially large allocation requests.

Note, replacing the one kmalloc_array() is fine as overflow checks happen
earlier in htab_map_alloc(), since it must also protect the multiplication
for vmalloc() should kmalloc_array() fail.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 17:12:26 -05:00
David Ahern
9ed59592e3 lwtunnel: fix autoload of lwt modules
Trying to add an mpls encap route when the MPLS modules are not loaded
hangs. For example:

    CONFIG_MPLS=y
    CONFIG_NET_MPLS_GSO=m
    CONFIG_MPLS_ROUTING=m
    CONFIG_MPLS_IPTUNNEL=m

    $ ip route add 10.10.10.10/32 encap mpls 100 via inet 10.100.1.2

The ip command hangs:
root       880   826  0 21:25 pts/0    00:00:00 ip route add 10.10.10.10/32 encap mpls 100 via inet 10.100.1.2

    $ cat /proc/880/stack
    [<ffffffff81065a9b>] call_usermodehelper_exec+0xd6/0x134
    [<ffffffff81065efc>] __request_module+0x27b/0x30a
    [<ffffffff814542f6>] lwtunnel_build_state+0xe4/0x178
    [<ffffffff814aa1e4>] fib_create_info+0x47f/0xdd4
    [<ffffffff814ae451>] fib_table_insert+0x90/0x41f
    [<ffffffff814a8010>] inet_rtm_newroute+0x4b/0x52
    ...

modprobe is trying to load rtnl-lwt-MPLS:

root       881     5  0 21:25 ?        00:00:00 /sbin/modprobe -q -- rtnl-lwt-MPLS

and it hangs after loading mpls_router:

    $ cat /proc/881/stack
    [<ffffffff81441537>] rtnl_lock+0x12/0x14
    [<ffffffff8142ca2a>] register_netdevice_notifier+0x16/0x179
    [<ffffffffa0033025>] mpls_init+0x25/0x1000 [mpls_router]
    [<ffffffff81000471>] do_one_initcall+0x8e/0x13f
    [<ffffffff81119961>] do_init_module+0x5a/0x1e5
    [<ffffffff810bd070>] load_module+0x13bd/0x17d6
    ...

The problem is that lwtunnel_build_state is called with rtnl lock
held preventing mpls_init from registering.

Given the potential references held by the time lwtunnel_build_state it
can not drop the rtnl lock to the load module. So, extract the module
loading code from lwtunnel_build_state into a new function to validate
the encap type. The new function is called while converting the user
request into a fib_config which is well before any table, device or
fib entries are examined.

Fixes: 745041e2aa ("lwtunnel: autoload of lwt modules")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 17:07:14 -05:00
Michael Chan
719ca81114 bnxt_en: Fix "uninitialized variable" bug in TPA code path.
In the TPA GRO code path, initialize the tcp_opt_len variable to 0 so
that it will be correct for packets without TCP timestamps.  The bug
caused the SKB fields to be incorrectly set up for packets without
TCP timestamps, leading to these packets being rejected by the stack.

Reported-by: Andy Gospodarek <andrew.gospodarek@broadocm.com>
Acked-by: Andy Gospodarek <andrew.gospodarek@broadocm.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 17:01:47 -05:00
Linus Torvalds
fb1d8e0e2c This pull request contains fixes for UBIFS:
- A long standing issue in UBIFS journal replay code
 - Fallout from the merge window
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJYf+HTAAoJEEtJtSqsAOnWD8YQAKZB6zkj8MMhuy5Pbf9Me9fS
 fhLhKXEtF6sAsqwkCzCFdplnszesnljuP44eNvD9bDBXqFrcj0MErNQFRqN9EhKE
 pfixectW7smexm7HMuUSa1K3LDNel41e8wdnFc5bAS4o6sjo/pp8sotGZ/wC/J+u
 hQeuMRlfXMgHkc58AP2QRVhoBa+l8uKRYfrql10Am5FDWwKhHKDeLXFhwW/xNjU0
 dUUDQ4v1zNxM71cD8lILoXOecmN0o+u+IK9CokzJycHM4Ncw34NAdDp5sFFAqsFj
 hnlmSGRx60+CDjCWaVCzOcc9r/S4toXDuksBzhN4qvCEhx0njy0jtoIabTkMhXC3
 t9tCSbsg+GETsKXr+SHYWjvFZf3oEYJEdu2dCaH7clyWT5T9roGH4tmOiJNXcXt7
 CxY8PP220m4OkON0bHZyLkGXCsD4zdgKDCyitStYxfyj3fhcCQxa0QkqJi3+RyN2
 xmQj8IieYqpODg7BaB3xP94NiPFpiiUFXGL4wJIJLQoA09jd/VQQN/1Ugcu81H1u
 2Kw7sA13nv7YhnA9L/EBFrY8kMdzkIy/zqD8lBOHeQfVpOaXAzGx99a0boU3q5y2
 oaLRiJtGJ2QRu7f3uXxnwG7QBnzLI29or5j4Cy88NqHX0UBoIRHe5HH0fZBATNjF
 cGDN5c7qRwT91WO2ilsD
 =GrH8
 -----END PGP SIGNATURE-----

Merge tag 'upstream-4.10-rc5' of git://git.infradead.org/linux-ubifs

Pull UBIFS fixes from Richard Weinberger:
 "This contains fixes for UBIFS:

   - a long standing issue in UBIFS journal replay code

   - fallout from the merge window"

* tag 'upstream-4.10-rc5' of git://git.infradead.org/linux-ubifs:
  ubifs: Fix journal replay wrt. xattr nodes
  ubifs: remove redundant checks for encryption key
  ubifs: allow encryption ioctls in compat mode
  ubifs: add CONFIG_BLOCK dependency for encryption
  ubifs: fix unencrypted journal write
  ubifs: ensure zero err is returned on successful return
2017-01-18 13:58:38 -08:00
Daniel Gonzalez Cabanelas
cd33b3e0da net: phy: bcm63xx: Utilize correct config_intr function
Commit a1cba5613e ("net: phy: Add Broadcom phy library for common
interfaces") make the BCM63xx PHY driver utilize bcm_phy_config_intr()
which would appear to do the right thing, except that it does not write
to the MII_BCM63XX_IR register but to MII_BCM54XX_ECR which is
different.

This would be causing invalid link parameters and events from being
generated by the PHY interrupt.

Fixes: a1cba5613e ("net: phy: Add Broadcom phy library for common interfaces")
Signed-off-by: Daniel Gonzalez Cabanelas <dgcbueu@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 16:56:10 -05:00
Vivien Didelot
9520ed8fb8 net: dsa: use cpu_switch instead of ds[0]
Now that the DSA Ethernet switches are true Linux devices, the CPU
switch is not necessarily the first one. If its address is higher than
the second switch on the same MDIO bus, its index will be 1, not 0.

Avoid any confusion by using dst->cpu_switch instead of dst->ds[0].

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 16:49:47 -05:00
Vivien Didelot
b22de49086 net: dsa: store CPU switch structure in the tree
Store a dsa_switch pointer to the CPU switch in the tree instead of only
its index. This avoids the need to initialize it to -1.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 16:49:46 -05:00
Ivan Khoronzhuk
e33c2ef106 net: ethernet: ti: davinci_cpdma: correct check on NULL in set rate
Check "ch" on NULL first, then get ctlr.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 16:46:01 -05:00
David S. Miller
e3e37e7017 Merge branch 'vhost_net-batching'
Jason Wang says:

====================
vhost_net tx batching

This series tries to implement tx batching support for vhost. This was
done by using MSG_MORE as a hint for under layer socket. The backend
(e.g tap) can then batch the packets temporarily in a list and
submit it all once the number of bacthed exceeds a limitation.

Tests shows obvious improvement on guest pktgen over over
mlx4(noqueue) on host:

                                     Mpps  -+%
        rx-frames = 0                0.91  +0%
        rx-frames = 4                1.00  +9.8%
        rx-frames = 8                1.00  +9.8%
        rx-frames = 16               1.01  +10.9%
        rx-frames = 32               1.07  +17.5%
        rx-frames = 48               1.07  +17.5%
        rx-frames = 64               1.08  +18.6%
        rx-frames = 64 (no MSG_MORE) 0.91  +0%

Changes from V4:
- stick to NAPI_POLL_WEIGHT for rx-frames is user specify a value
  greater than it.
Changes from V3:
- use ethtool instead of module parameter to control the maximum
  number of batched packets
- avoid overhead when MSG_MORE were not set and no packet queued
Changes from V2:
- remove uselss queue limitation check (and we don't drop any packet now)
Changes from V1:
- drop NAPI handler since we don't use NAPI now
- fix the issues that may exceeds max pending of zerocopy
- more improvement on available buffer detection
- move the limitation of batched pacekts from vhost to tuntap
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 16:35:30 -05:00
Jason Wang
5503fcecd4 tun: rx batching
We can only process 1 packet at one time during sendmsg(). This often
lead bad cache utilization under heavy load. So this patch tries to do
some batching during rx before submitting them to host network
stack. This is done through accepting MSG_MORE as a hint from
sendmsg() caller, if it was set, batch the packet temporarily in a
linked list and submit them all once MSG_MORE were cleared.

Tests were done by pktgen (burst=128) in guest over mlx4(noqueue) on host:

                                 Mpps  -+%
    rx-frames = 0                0.91  +0%
    rx-frames = 4                1.00  +9.8%
    rx-frames = 8                1.00  +9.8%
    rx-frames = 16               1.01  +10.9%
    rx-frames = 32               1.07  +17.5%
    rx-frames = 48               1.07  +17.5%
    rx-frames = 64               1.08  +18.6%
    rx-frames = 64 (no MSG_MORE) 0.91  +0%

User were allowed to change per device batched packets through
ethtool -C rx-frames. NAPI_POLL_WEIGHT were used as upper limitation
to prevent bh from being disabled too long.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-18 16:35:30 -05:00