Commit graph

536,164 commits

Author SHA1 Message Date
Daniel Vetter
82d5b58f13 drm/i915: Update DRIVER_DATE to 20150522
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-05-22 19:45:27 +02:00
Xunlei Pang
e83d0a4106 time: Remove read_boot_clock()
Now that we have a read_boot_clock64() function available on every
architecture, and converted all the users to it, it's time to remove
the (now unused) read_boot_clock() completely from the kernel.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org>
[jstultz: Minor commit message tweak suggested by Ingo]
Signed-off-by: John Stultz <john.stultz@linaro.org>
2015-05-22 10:36:29 -07:00
Xunlei Pang
689911c734 s390: time: Provide read_boot_clock64() and read_persistent_clock64()
As part of addressing the "y2038 problem" for in-kernel uses,
this patch converts read_boot_clock() to read_boot_clock64()
and read_persistent_clock() to read_persistent_clock64() using
timespec64.

Rename some instances of 'timespec' to 'timespec64' in time.c and
related references

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: linux390@de.ibm.com
Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org>
[jstultz: Fixed minor style and grammer tweaks
 pointed out by Ingo]
Signed-off-by: John Stultz <john.stultz@linaro.org>
2015-05-22 10:36:29 -07:00
Xunlei Pang
30f3b3f983 time: Include math64.h in time64.h
On 32-bit systems, timespec64_add_ns() calls __iter_div_u64_rem()
which needs math64.h, and we want to include time64.h in some
cases.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2015-05-22 10:36:28 -07:00
Badhri Jagan Sridharan
4e413e8526 tracing: timer: Add deferrable flag to timer_start
The timer_start event now shows whether the timer is
deferrable in case of a low-res timer. The debug_activate
function now includes a deferrable flag while calling
the trace_timer_start event.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
[jstultz: Fixed minor whitespace and grammer tweaks
 pointed out by Ingo]
Signed-off-by: John Stultz <john.stultz@linaro.org>
2015-05-22 10:36:06 -07:00
John Stultz
57d05a93ad time: Rework debugging variables so they aren't global
Ingo suggested that the timekeeping debugging variables
recently added should not be global, and should be tied
to the timekeeper's read_base.

Thus this patch implements that suggestion.

This version is different from the earlier versions
as it keeps the variables in the timekeeper structure
rather then in the tkr.

Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2015-05-22 09:13:43 -07:00
Harald Geyer
6374f9124e timekeeping: Provide new API to get the current time resolution
This patch series introduces a new function
u32 ktime_get_resolution_ns(void)
which allows to clean up some driver code.

In particular the IIO subsystem has a function to provide timestamps for
events but no means to get their resolution. So currently the dht11 driver
tries to guess the resolution in a rather messy and convoluted way. We
can do much better with the new code.

This API is not designed to be exposed to user space.

This has been tested on i386, sunxi and mxs.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Harald Geyer <harald@ccbib.org>
[jstultz: Tweaked to make it build after upstream changes]
Signed-off-by: John Stultz <john.stultz@linaro.org>
2015-05-22 09:12:28 -07:00
Sasha Levin
6f7d79849a time: Make sure tz_minuteswest is set to a valid value when setting time
Invalid values may overflow later, leading to undefined behaviour when
multiplied by 60 to get the amount of seconds.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2015-05-22 09:12:22 -07:00
Christoffer Dall
bde1b29420 stable: Update documentation to clarify preferred procedure
Clearly specify that "Cc: stable@vger.kernel.org" is strongly preferred so
that developers understand that the other options should only be used when
absolutely required.

Also specify how upstream commit ids should be referenced in patches
submitted directly to stable (I gathered this from looking at the stable
archives), and specify that any modified patches for stable should be
clearly documented in the patch description.

Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2015-05-22 09:38:56 -06:00
Arnd Bergmann
41275490f7 Merge branch 'for-upstream/juno-dts' of git://linux-arm.org/linux-ld into next/dt
Merge "Documentation: bindings: Add DT bindings for ARM Juno boards" from Liviu Dudau:

* 'for-upstream/juno-dts' of git://linux-arm.org/linux-ld:
  Documentation: bindings: Add DT bindings for ARM Juno boards.
  arm64: Add DT support for Juno r1 board.
  arm64: Juno: Add GICv2m support in device tree.
  arm64: Juno: Add memory mapped timer node
  arm64: Juno: Split juno.dts into juno-base.dtsi and juno.dts.
  arm64: Juno: Fix the GIC node address label and the frequency of FAXI clock.
2015-05-22 17:33:12 +02:00
Geert Uytterhoeven
cbfa2c5281 gpiolib: Grammar s/an negative/a negative/
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2015-05-22 09:31:15 -06:00
Geert Uytterhoeven
11e285d8ff DMA-API: Spelling s/This/Think/
Also remove spaces before TABs while we're at it.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2015-05-22 09:30:47 -06:00
Liviu Dudau
41e177b37b Documentation: bindings: Add DT bindings for ARM Juno boards.
List the required properties and nodes used to describe the
ARM Juno boards.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
2015-05-22 16:25:40 +01:00
Liviu Dudau
796c2b35a4 arm64: Add DT support for Juno r1 board.
This board is based on Juno r0 with updated Cortex A5x revisions
and board errata fixes. It also contains coherent ThinLinks ports
on the expansion slot that allow for an AXI master on the daughter
card to participate in a coherency domain.

Support for SoC PCIe host bridge will be added as a separate series.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Acked-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
2015-05-22 16:25:35 +01:00
Liviu Dudau
9e6f374f99 arm64: Juno: Add GICv2m support in device tree.
Juno contains a GICv2m extension for handling PCIe MSI messages.
Add a node declaring the first frame of the extension.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Acked-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
2015-05-22 16:25:31 +01:00
Liviu Dudau
7950235568 arm64: Juno: Add memory mapped timer node
Juno based boards have a memory mapped timer @ 0x2a810000. This
is disabled on r0 version of the board due to an SoC errata.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Acked-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
2015-05-22 16:25:25 +01:00
Liviu Dudau
e802087437 arm64: Juno: Split juno.dts into juno-base.dtsi and juno.dts.
Prepare the device tree for adding more boards based on Juno r0.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Acked-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
2015-05-22 16:25:16 +01:00
Liviu Dudau
18c0b01530 arm64: Juno: Fix the GIC node address label and the frequency of FAXI clock.
During the review of the Juno DT files I've noticed that the GIC
node label had two digits swapped leading to a different address
being shown in the /sys/devices fs.

Sudeep also pointed that public revisions of the Juno documentation
list a different frequency for the FAXI system than what the one
I've been using when creating the DT file. Verified with the firmware
people to be the correct value in the shipped systems.

Reported-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Jon Medhurst <tixy@linaro.org>
2015-05-22 16:25:07 +01:00
Arnd Bergmann
898a7f36c6 Third batch of DT changes for 4.2:
- USB host clock refine following changes in drivers
 - one little fix for usart pinctrl
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQEcBAABAgAGBQJVXvpAAAoJEAf03oE53VmQxx0IAMegPIH5rS0NIC+XmwpFnmre
 L0bP0dRdKHS5uRxsZfD7F0WF61JiOuLzgX/rIIclnllvvKMPVW+CEs1KnfWVP33u
 9FfFIErkGnYeJjs7Lj1j1lb9ESkJfqapMwTfl74mod8QFOT3cgXOiUu8pgHIp2cF
 OTR6W5vkv1KoR8E0B4nGv9wZmRBeujtxW+2nIZZVcAglxfOHkJfqlfQ5wCQtdsnU
 7K45r4WTbM632hIW5XA3OlzCuuIWs2Hr591aW8PY4KLMPB39HcCV/eTxJMGRbg1Q
 4baSQ0xN+DhPfJary0Nc6Y2QXxZWb9y2ElGrqVMlbanCV7xaUGUGYrZ14heRvRs=
 =ubIG
 -----END PGP SIGNATURE-----

Merge tag 'at91-dt3' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91 into next/dt

Merge "Third batch of DT changes for 4.2" from Nicolas Ferre:

- USB host clock refine following changes in drivers
- one little fix for usart pinctrl

* tag 'at91-dt3' of git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91:
  ARM: at91/dt: remove useless usb clock
  ARM: at91/dt: remove useless uhpck clock references from ehci defintions
  USB: atmel: update DT bindings documentation
  ARM: at91/dt: at91sam9x5: fix usart1 sck pin definition
2015-05-22 17:17:17 +02:00
Arnd Bergmann
220684f3cd Relicense all Rockchip-related devicetree files to the GPL2/X11 combo.
I've now finally aquired necessary Acks from all contributors.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABCAAGBQJVXKu2AAoJEPOmecmc0R2BHM8H/1YECkRwKe49NHnJ1+GEY1Kt
 Eovmm4yOMkNMDwCzWbf9aSWrcdGFkMzba5MHJEy38M8hMOT2VqZ+5YLXYMW1Vk0o
 hMI3KeJ4mLuTr0Bqfeh57Dy7+iUe9wUoU1bTDQs1eP3lARWgoSh6wIEflEKWeLH8
 VmeREOLGgncIcafBrFiLQ+b32IUDfAzzgjkqIbDCuNHd7g+kf8JyVj0FNHNLhbJ+
 t3VfPuP3yVW3SlhctTbEttOBxIzuYde4MsjREyTWtTh58KzVyZvYYlfanC3ZMLZe
 4MdquiFzn6En/diikeTrwWw1uRK9qKTKPcbtVwZXI26F+a7WPi47x6W/Bme5xeI=
 =lKxg
 -----END PGP SIGNATURE-----

Merge tag 'v4.2-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt

Merge "ARM: rockchip: dts relicensing for 4.2" from Heiko Stuebner:

Relicense all Rockchip-related devicetree files to the GPL2/X11 combo.
I've now finally aquired necessary Acks from all contributors.

* tag 'v4.2-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: dts: rockchip: relicense rk3288-evb* under GPLv2/X11
  ARM: dts: rockchip: relicense rk3288.dtsi under GPLv2/X11
  ARM: dts: rockchip: relicense rk3188-radxarock.dts under GPLv2/X11
  ARM: dts: rockchip: relicense rk3066a-bqcurie2.dts under GPLv2/X11
  ARM: dts: rockchip: relicense rk3288-thermal.dtsi under GPLv2/X11
  ARM: dts: rockchip: relicense rk3188.dtsi under GPLv2/X11
  ARM: dts: rockchip: relicense rk3066a.dtsi under GPLv2/X11
  ARM: dts: rockchip: relicense rk3xxx.dtsi under GPLv2/X11
2015-05-22 17:16:20 +02:00
Krzysztof Kozlowski
9482317340 ARM: multi_v7_defconfig: Enable OHCI on exynos SoCs
Enable the USB OHCI driver for Exynos SoCs: S5PV210, Exynos4 family,
Exynos5250, Exynos5440 and Exynos542x/5800 family.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Reviewed-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:14:13 +02:00
Krzysztof Kozlowski
a5112b6bfc ARM: multi_v7_defconfig: Enable TMU for exynos SoCs
Enable support for Thermal Monitoring Unit present on Exynos SoCs. This
allows detection of overheat and handling this gracefully.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski.k@gmail.com>
Reviewed-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:14:07 +02:00
Krzysztof Kozlowski
dcf9a03bff ARM: multi_v7_defconfig: Enable PMIC and MUIC drivers for exynos
Enable drivers for PMICs and MUICs present on Exynos-based devices:
- max14577: charger, fuel gauge (max17040), regulator,
  used on: Gear 1, Gear 2,
- max77693: charger, fuel gauge (max17042),
  used on: Trats2,
- s5m/s2mps: RTC, clock,
  used on: Arndale, Arndale Octa, Gear 1, Gear 2

This allows full usage of charging stack on these devices along with RTC
and 32 kHz clocks.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
[kgene@kernel.org: savedefconfig]
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:14:01 +02:00
Krzysztof Kozlowski
f020ee16ee ARM: multi_v7_defconfig: Enable CPU idle for exynos SoCs
Current Exynos CPU idle driver supports entering AFTR (Arm Off, Top
Running) mode on Exynos3250, Exynos4210 (coupled), Exynos4x12 and
Exynos5250. Enable it in default configuration to reduce energy
consumption.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:54 +02:00
Javier Martinez Canillas
1dbba598b5 ARM: multi_v7_defconfig: Enable Cypress APA I2C Trackpad support
The Cypress All Points Addressable (APA) I2C Trackpad is used in the
Samsung Exynos 5250 Snow Chromebook. Build the driver as a module so
the device is supported.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:48 +02:00
Javier Martinez Canillas
50bc2ad87c ARM: multi_v7_defconfig: Enable GPIO-based I2C arbitration support
The I2C GPIO arbitration driver is used on the Exynos5250 Snow Chromebook
to arbitrate the access to a I2C bus by the Application Processor or a EC.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:43 +02:00
Javier Martinez Canillas
56579f52aa ARM: multi_v7_defconfig: Enable options for Exynos display support
Many Exynos devices have devices attached to their display ports.
This patch enables the needed Kconfig options to support different
configuration such as simple panel, embedded DisplayPort (eDP) to
LVDS bridges and HDMI displays.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
[kgene@kernel.org: savedefconfig]
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:38 +02:00
Javier Martinez Canillas
aaf8977ff4 ARM: multi_v7_defconfig: Enable Samsung S3C SoC RTC
The rtc-s3c driver supports a range of S3C series Real-Time-Clocks found
on many Samsung SoCs. Build the driver as a module to support these RTC.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:33 +02:00
Javier Martinez Canillas
1cbdc6c1bd ARM: multi_v7_defconfig: Enable Samsung PWM support
Build the Generic PWM Samsung driver as a module to support PWM
devices used in platforms with a Samsung SoC.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:27 +02:00
Javier Martinez Canillas
c3e4b72db1 ARM: multi_v7_defconfig: Enable support for missing ChromeOS EC drivers
Enable the needed Kconfig options to have support for the ChromeOS EC
I2C transport, I2C tunnel and chardev user-space interface.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:17 +02:00
Javier Martinez Canillas
7de7c6717f ARM: multi_v7_defconfig: Enable Exynos USB PHY drivers support
Enable the needed kconfig options to have support for Samsung USB 2.0
and USB 3.0 PHY drivers to support the USB PHYs found on Exynos SoCs.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
[kgene@kernel.org: savedefconfig]
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:12 +02:00
Javier Martinez Canillas
f3caa529c6 ARM: multi_v7_defconfig: Enable max77802 regulator, rtc and clock drivers
The Maxim max77802 Power Management IC is used on many Exynos machines.
Besides a bunch of regulators, this chip has a Real-Time-Clock (RTC)
and 2-channel 32kHz clock outputs.

Enable the kernel config options to have the drivers for these devices
built as a module.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
[kgene@kernel.org: removing useless REGULATOR_MAX77802 config]
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:13:06 +02:00
Javier Martinez Canillas
eb2209b4a9 ARM: multi_v7_defconfig: Enable support for Samsung S3C64XX SPI
Build the spi-s3c64xx driver as a module to have support for
the SPI controller in several Samsung SoCs.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Kukjin Kim <kgene@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 17:12:54 +02:00
Yijing Wang
d0751b98df PCI: Add dev->has_secondary_link to track downstream PCIe links
A PCIe Port is an interface to a Link.  A Root Port is a PCI-PCI bridge in
a Root Complex and has a Link on its secondary (downstream) side.  For
other Ports, the Link may be on either the upstream (closer to the Root
Complex) or downstream side of the Port.

The usual topology has a Root Port connected to an Upstream Port.  We
previously assumed this was the only possible topology, and that a
Downstream Port's Link was always on its downstream side, like this:

                  +---------------------+
  +------+        |          Downstream |
  | Root |        | Upstream       Port +--Link--
  | Port +--Link--+ Port                |
  +------+        |          Downstream |
                  |                Port +--Link--
                  +---------------------+

But systems do exist (see URL below) where the Root Port is connected to a
Downstream Port.  In this case, a Downstream Port's Link may be on either
the upstream or downstream side:

                  +---------------------+
  +------+        |            Upstream |
  | Root |        | Downstream     Port +--Link--
  | Port +--Link--+ Port                |
  +------+        |          Downstream |
                  |                Port +--Link--
                  +---------------------+

We can't use the Port type to determine which side the Link is on, so add a
bit in struct pci_dev to keep track.

A Root Port's Link is always on the Port's secondary side.  A component
(Endpoint or Port) on the other end of the Link obviously has the Link on
its upstream side.  If that component is a Port, it is part of a Switch or
a Bridge.  A Bridge has a PCI or PCI-X bus on its secondary side, not a
Link.  The internal bus of a Switch connects the Port to another Port whose
Link is on the downstream side.

[bhelgaas: changelog, comment, cache "type", use if/else]
Link: http://lkml.kernel.org/r/54EB81B2.4050904@pobox.com
Link: https://bugzilla.kernel.org/show_bug.cgi?id=94361
Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2015-05-22 09:59:33 -05:00
Christoph Hellwig
5f1b670d0b block, dm: don't copy bios for request clones
Currently dm-multipath has to clone the bios for every request sent
to the lower devices, which wastes cpu cycles and ties down memory.

This patch instead adds a new REQ_CLONE flag that instructs req_bio_endio
to not complete bios attached to a request, which we set on clone
requests similar to bios in a flush sequence.  With this change I/O
errors on a path failure only get propagated to dm-multipath, which
can then either resubmit the I/O or complete the bios on the original
request.

I've done some basic testing of this on a Linux target with ALUA support,
and it survives path failures during I/O nicely.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:58:57 -06:00
Mike Snitzer
326e1dbb57 block: remove management of bi_remaining when restoring original bi_end_io
Commit c4cf5261 ("bio: skip atomic inc/dec of ->bi_remaining for
non-chains") regressed all existing callers that followed this pattern:
 1) saving a bio's original bi_end_io
 2) wiring up an intermediate bi_end_io
 3) restoring the original bi_end_io from intermediate bi_end_io
 4) calling bio_endio() to execute the restored original bi_end_io

The regression was due to BIO_CHAIN only ever getting set if
bio_inc_remaining() is called.  For the above pattern it isn't set until
step 3 above (step 2 would've needed to establish BIO_CHAIN).  As such
the first bio_endio(), in step 2 above, never decremented __bi_remaining
before calling the intermediate bi_end_io -- leaving __bi_remaining with
the value 1 instead of 0.  When bio_inc_remaining() occurred during step
3 it brought it to a value of 2.  When the second bio_endio() was
called, in step 4 above, it should've called the original bi_end_io but
it didn't because there was an extra reference that wasn't dropped (due
to atomic operations being optimized away since BIO_CHAIN wasn't set
upfront).

Fix this issue by removing the __bi_remaining management complexity for
all callers that use the above pattern -- bio_chain() is the only
interface that _needs_ to be concerned with __bi_remaining.  For the
above pattern callers just expect the bi_end_io they set to get called!
Remove bio_endio_nodec() and also remove all bio_inc_remaining() calls
that aren't associated with the bio_chain() interface.

Also, the bio_inc_remaining() interface has been moved local to bio.c.

Fixes: c4cf5261 ("bio: skip atomic inc/dec of ->bi_remaining for non-chains")
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:58:55 -06:00
Stefan Agner
4737130e67 ARM: add ARM_SINGLE_ARMV7M in ARMv7-M defconfigs
Select ARM_SINGLE_ARMV7M in defconfigs of the converted ARMv7-M
platforms.

[arnd: moved the efm32_defconfig change to the patch that
originally introduces the symbol, to avoid intermittent regression]

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 16:58:03 +02:00
Stefan Agner
499f164020 ARM: use ARM_SINGLE_ARMV7M for ARMv7-M platforms
Use the new config symbol ARM_SINGLE_ARMV7M which groups config
symbols used by modern ARMv7-M platforms. This allows supporting
multiple ARMv7-M platforms in one kernel image. However, a common
kernel image requires the combined platforms to share the same
main memory layout to be bootable.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Joachim Eastwood <manabian@gmail.com>
Acked-by: Maxime Coquelin <maxime.coquelin@st.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 16:53:12 +02:00
Sakari Ailus
247de69434 PCI: Add function 1 DMA alias quirk for Marvell 9120
Marvell 9120 SATA controller has the same issue as a number of others, so
use the same quirk for this one.  The other quirks were added by
cc346a4714 ("PCI: Add function 1 DMA alias quirk for Marvell devices").

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
2015-05-22 09:50:41 -05:00
Arnd Bergmann
993198a641 ARM: zx: fix building with CONFIG_THUMB2_KERNEL
The newly added zx platform causes a build error when
CONFIG_THUMB2_KERNEL is enabled:

arch/arm/mach-zx/headsmp.S:16: Error: invalid immediate for address calculation (value = 0x00000004)

I'm assuming that the ROM code that is calling these entry
points runs in ARM mode, so there would be another problem
in the same file, and we can solve both problems at once
by adding a '.arm' statement that will make zx_resume_jump
and zx_secondary_startup both be built as ARM code.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Jun Nie <jun.nie@linaro.org>
Tested-by: Jun Nie <jun.nie@linaro.org>
2015-05-22 16:45:54 +02:00
Robert Jarzmik
bd7413aef8 ARM: pxa: pxa_cplds: signedness bug in probe
"base_irq" needs to be signed for the error handling to work.  Also we
can remove the initialization because we re-assign it later.

Fixes: aa8d6b73ea ('ARM: pxa: pxa_cplds: add lubbock and mainstone IO')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2015-05-22 16:41:20 +02:00
Arnd Bergmann
d7c82daf4f First batch of cleanup for 4.2:
- use syscon in the ata and cf drivers to configure the SMC and drop
  sam9_smc.c
  - switch the at91rm9200 memory controller to syscon
  - remove last useless headers
  - remove now useless Makefile.boot
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJVXkSpAAoJEKbNnwlvZCyzauwQAMw7hS1F13piSpN5JBlST6yx
 I4ojH/wB5GzI+qvTTcBZQR0AGcDatU3cHuzIPzYypKTB76iLf5DaZPvPjN3S3EK0
 2/4R2eJyz0pA/2liTQ17e0MjKSIR0Ui7kk/aWYnC92/p2KK8xpUsbxznAIkAdw8I
 a1HgsM1IKPVnyyxgvrKNhNcsP7fCzfjgnRNmRiFe9iDIbLervE+jKpm7PTakWtQL
 OeLqRoURVd7yOLeqhlrmgch0ut8MqdHPgD57M/xbgi11VSg1PwLWTpuUlbnbVFwD
 nw8A7d24+rUYLgyhTj92RmSiPjFyztHL6S+rw4yzaDLHMIr4Vm/U4eS9xcRhXzhe
 FaigePDKYQiDNZ3u3NCDwOJk3HLlTkpvlzmVd1nFn313afFOy4AtIwtyUgg51946
 HkZQSU0JIcqd6y53EFjSMjdGxuDavyrYsV9KNDh3dFNHEKfe41LJBnYB9Q3mSYZC
 H66sqs+5JVguwNdLJKXKvrehTF0dmsawvd0cjZgBDDj8JORjBPLIquU+IVJ1isYV
 KDH4JjEWYqVk86j0Cpt0A+vCBOCAS21dn5wb6vi8dD4agoRr7HuQnSMbvzDhNLnY
 93Ah82q5bQJjvWgb5FXYp2Ar9IhLBZ7sLqcnF1Fo5S7KCC6wMnd11/NeFYsnKfE/
 N55fXpd/pPYDNg3XDs+q
 =iSye
 -----END PGP SIGNATURE-----

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

Merge "First batch of cleanup for 4.2" from Alexandre Belloni:

 - use syscon in the ata and cf drivers to configure the SMC and drop
 sam9_smc.c
 - switch the at91rm9200 memory controller to syscon
 - remove last useless headers
 - remove now useless Makefile.boot

* tag 'at91-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  ARM: at91: remove useless Makefile.boot
  ARM: at91: remove at91rm9200_sdramc.h
  ARM: at91: remove mach/at91_ramc.h and mach/at91rm9200_mc.h
  ARM: at91/pm: use the atmel-mc syscon defines
  pcmcia: at91_cf: Use syscon to configure the MC/smc
  ARM: at91: declare the at91rm9200 memory controller as a syscon
  mfd: syscon: Add Atmel MC (Memory Controller) registers definition
  ARM: at91: drop sam9_smc.c
  ata: at91: use syscon to configure the smc
2015-05-22 16:39:20 +02:00
Arnd Bergmann
2ed2558087 Clean-up for omaps for v4.2 merge window:
Drop more omap3 legacy board-*.c files for v4.2. This time we're
 dropping the board files for beagle, overo and cm-t35.
 
 The reason for dropping these now rather than later is that now
 we can simply revert the patches in case of unexpected issues as
 we are not dropping any platform data at this point.
 
 This leaves us with only the following board-*.c files:
 
 BOARD                   REASON NEEDED
 board-ldp.c             Still used in RMKs boot test system
 board-omap3logic.c      Getting a .dts file for v4.2
 board-omap3pandora.c    Got a .dts file for v4.1
 board-rx51-*.c          Needs /proc/atags support for user space
 
 I'm hoping we can drop the remaining board-*.c for v4.3 merge
 window, then keep the platform data around for one more merge
 window in case of reverting needed, then drop the platform data
 too for v4.4 if no issues needing reverting are found.
 
 Also, few patches to clean-up the usage of Linux generic
 macros:
 
 - Use define for console loglevel
 
 - Use const for struct irq_domain_ops
 
 - Use PTR_ERR_OR_ZERO instead of PTR_RET
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVXQPLAAoJEBvUPslcq6VzbrEQAKWjRL1aaSkxmAB6NzB9o16K
 /BbDTAl93l4zsnk4yvWz2CH1wRF0dtzN8aULgCK0v/dOAQx+scYDGGJZwt4EmFcP
 7th7tgSAumNwNQz7BLT9IgdHUTSmGxHMS6dotMHlSfa8g5S0K97wWyfWsyBmj3gZ
 nrD8ub9GfVkjt4k/Kk83EuEz8TI/ne1K6+EAR/RObLW15PzbP2YoTp14sXBWEqos
 8yRvUV/j57M7VOKu7zv+QRFx476c2GxiU7FnrVdZkuJNoZNdMYsMTm77Q7p8/Kw/
 AKvbQSa0Wa9VifhPIX7mpxlIBnuDM+2tJNXBkDuBjzcM1WllBiqlK7Zvzc5D3SoI
 vGSYicgjU+nafyhGt2dmf6TmiO0LX4ve7n8tNkKGHux8OdXhhFnH+SnwWyt1/Bxy
 aTwGiL0Jy82m817DL0GY9cbqydTtrRFR3H/UbInv/miT1SV1BX0rR2S3rFDad6BM
 CWn0e5mB1fJ3BX3F9hJH8pBj4Uz8pusyIIxAceyfIqRTBH5jwZcED0TcKhuiwbmL
 QMGUM1mSBhFqnnTr3DYsXwatkPzC+7pR1xHP/Qnve7jbX3PxipOASvCIb8HDq8sF
 lmpWZRnC7UYi4SOf3DTnbqy9dlIQYp8oRZTmeeol4R5QML49pNkuxcr50dmLc0tA
 8ReodZZlD4aPHZZ41rD7
 =AVB2
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v4.2/clean' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup

Merge "Clean-up for omaps for v4.2 merge window" from Tony Lindgren:

Drop more omap3 legacy board-*.c files for v4.2. This time we're
dropping the board files for beagle, overo and cm-t35.

The reason for dropping these now rather than later is that now
we can simply revert the patches in case of unexpected issues as
we are not dropping any platform data at this point.

This leaves us with only the following board-*.c files:

BOARD                   REASON NEEDED
board-ldp.c             Still used in RMKs boot test system
board-omap3logic.c      Getting a .dts file for v4.2
board-omap3pandora.c    Got a .dts file for v4.1
board-rx51-*.c          Needs /proc/atags support for user space

I'm hoping we can drop the remaining board-*.c for v4.3 merge
window, then keep the platform data around for one more merge
window in case of reverting needed, then drop the platform data
too for v4.4 if no issues needing reverting are found.

Also, few patches to clean-up the usage of Linux generic
macros:

- Use define for console loglevel

- Use const for struct irq_domain_ops

- Use PTR_ERR_OR_ZERO instead of PTR_RET

* tag 'omap-for-v4.2/clean' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  mach-omap2: Remove use of deprecated marco, PTR_RET in devices.c
  ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and pmu.c
  ARM: OMAP2+: Constify irq_domain_ops
  ARM: OMAP2+: use symbolic defines for console loglevels instead of numbers
  ARM: OMAP2+: Remove legacy booting support for Beagleboards
  ARM: OMAP2+: Remove legacy booting support for Overo
  ARM: OMAP2+: Remove legacy booting support for cm-t35
2015-05-22 16:37:35 +02:00
Christoph Hellwig
d29ec8241c nvme: submit internal commands through the block layer
Use block layer queues with an internal cmd_type to submit internally
generated NVMe commands.  This both simplifies the code a lot and allow
for a better structure.  For example now the LighNVM code can construct
commands without knowing the details of the underlying I/O descriptors.
Or a future NVMe over network target could inject commands, as well as
could the SCSI translation and ioctl code be reused for such a beast.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:37:20 -06:00
Christoph Hellwig
772ce43559 nvme: fail SCSI read/write command with unsupported protection bit
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:36:44 -06:00
Christoph Hellwig
9085176848 nvme: report the DPOFUA in MODE_SENSE
NVMe device always support the FUA bit, and the SCSI translations
accepts the DPO bit, which doesn't have much of a meaning for us.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:36:42 -06:00
Christoph Hellwig
cbbb7a2ec6 nvme: simplify and cleanup the READ/WRITE SCSI CDB parsing code
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:36:40 -06:00
Christoph Hellwig
3726897efd nvme: first round at deobsfucating the SCSI translation code
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:36:38 -06:00
Christoph Hellwig
e61b0a86ca nvme: fix scsi translation error handling
Erorr handling for the scsi translation was completely broken, as there
were two different positive error number spaces overlapping.  Fix this
up by removing one of them, and centralizing the generation of the other
positive values in a single place.  Also fix up a few places that didn't
handle the NVMe error codes properly.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:36:36 -06:00
Christoph Hellwig
b90c48d0c1 nvme: split nvme_trans_send_fw_cmd
This function handles two totally different opcodes, so split it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2015-05-22 08:36:34 -06:00