platform/kernel/linux-exynos.git
10 years agoARM: dts: imx51-babbage: Add PMIC RTC support
Fabio Estevam [Thu, 22 May 2014 17:45:05 +0000 (14:45 -0300)]
ARM: dts: imx51-babbage: Add PMIC RTC support

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: imx6: ventana: update model to reflect Dual/Solo CPU types
Tim Harvey [Thu, 22 May 2014 06:04:55 +0000 (23:04 -0700)]
ARM: dts: imx6: ventana: update model to reflect Dual/Solo CPU types

The imx6dl dts supports both DualLite and Solo CPU variants
The imx6q dts supports both Dual and Quad CPU variants

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: imx6: ventana: change sound device name
Tim Harvey [Thu, 22 May 2014 06:04:54 +0000 (23:04 -0700)]
ARM: dts: imx6: ventana: change sound device name

The 'model' property in the imx-audio-sgtl5000 binding specifies the
user-visible name of the audio device. This should be something common and
not baseboard specific.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dt: imx28-cfa10036: introduce a regulator for mmc0
Alexandre Belloni [Thu, 15 May 2014 15:12:48 +0000 (17:12 +0200)]
ARM: dt: imx28-cfa10036: introduce a regulator for mmc0

The PWM3 pinmux configuration conflicts with gpio 3.28. Introduce a regulator
for mmc0 so that it conflicts with the pwm driver and fails gracefully. The
kernel will then able to access mmc0 normally.

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: imx6sl: add fec sleep pinctrl for pin PM state
Fugang Duan [Tue, 20 May 2014 06:50:44 +0000 (14:50 +0800)]
ARM: dts: imx6sl: add fec sleep pinctrl for pin PM state

when system suspend, need to set pins to low power state to
save IO power consumption, there are three states of pinctrl:
"default", "idle" and "sleep". Currently enet supports default
and sleep state.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: imx6qdl-sabresd: Configure the ECSPI1 chip select pin
Fabio Estevam [Wed, 14 May 2014 19:53:55 +0000 (16:53 -0300)]
ARM: dts: imx6qdl-sabresd: Configure the ECSPI1 chip select pin

GPIO4_9 is used as ECSPI1 chip select and it needs to be configured as GPIO.

Configure the pin functionality explicitly in the dts file instead of relying
on the fact that it comes configured as GPIO from POR or from the bootloader.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: Add support for the cpuimx27 board from Eukrea and its baseboard
Alexander Shiyan [Tue, 13 May 2014 14:48:15 +0000 (18:48 +0400)]
ARM: dts: Add support for the cpuimx27 board from Eukrea and its baseboard

This patch adds support for the cpuimx27 board from Eukrea and its
baseboard. This change is intended to further remove non-DT support
for this board.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: imx: add initial imx6sx-sdb board support
Shawn Guo [Tue, 13 May 2014 13:43:36 +0000 (21:43 +0800)]
ARM: dts: imx: add initial imx6sx-sdb board support

Add initial imx6sx-sdb board support with limited devices enabled.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: imx: add initial imx6sx device tree source
Shawn Guo [Tue, 13 May 2014 12:21:35 +0000 (20:21 +0800)]
ARM: dts: imx: add initial imx6sx device tree source

Add initial device tree source for i.MX6 SoloX SoC.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: dts: imx: add pin function header for imx6sx
Shawn Guo [Sun, 11 May 2014 13:59:26 +0000 (21:59 +0800)]
ARM: dts: imx: add pin function header for imx6sx

Add pin function header for i.MX6 SoloX SoC.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoMerge tag 'imx-soc-3.17' into imx/dt
Shawn Guo [Fri, 18 Jul 2014 08:47:26 +0000 (16:47 +0800)]
Merge tag 'imx-soc-3.17' into imx/dt

The i.MX SoC changes for 3.17:
 - Add devicetree support for i.MX1 and i.MX21 clock driver
 - Use CLOCKSOURCE_OF_DECLARE() to initialize timer for DT targets
 - Use of_clk_init() to initialize i.MX25 and i.MX27 clock driver in
   device tree boot
 - Remove i.MX1 camera support
 - Remove i.MX27 IP Camera and Lite-Kit board support
 - Add suspend and cpuidle support for i.mx6sx
 - Clean up unused clk_register_clkdev() lookups
 - Update imx-weim bus driver to support populating devices on a simple
   bus
 - Switch i.MX27 and i.MX6QDL clock driver to use macro for clock IDs
 - Make i.MX51 a DT only platform and clean up the non-DT support code
 - Support disabling supervisor protect via DT
 - Random defconfig updates

10 years agoARM: imx: clk-vf610: fix FlexCAN clock gating
Stefan Agner [Tue, 15 Jul 2014 12:56:19 +0000 (14:56 +0200)]
ARM: imx: clk-vf610: fix FlexCAN clock gating

Extend the clock control for FlexCAN with the second gate which
enable the clocks in the Clock Divider (CCM_CSCDR2) register too.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets
Alexander Shiyan [Sun, 13 Jul 2014 05:34:00 +0000 (09:34 +0400)]
ARM: i.MX: Use CLOCKSOURCE_OF_DECLARE() for DT targets

This patch uses clocksource_of_init() call for DT targets.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX53: globally disable supervisor protect
Steffen Trumtrar [Mon, 7 Jul 2014 09:41:27 +0000 (11:41 +0200)]
ARM: i.MX53: globally disable supervisor protect

Most peripherals on the i.MX53 have an
  Off-Platform Peripheral Access Control Register (OPACR)
in which the access rights (together with the MPROT registers) can be declared.
However, this does not seem to work for example for SSI1+SDMA, because the
supervisor bit is not set for the SDMA unit.
It does work for SSI2, the QSB for example uses SSI2 for its audio. But SSI2 only
works because it does NOT have an OPACR.

The right solution would be to fix the access rights for the SDMA, but the unit
responsible for this is the Central Security Unit (CSU), which of course is NOT
documented. So, until documentation for this is openly available, turn off the
supervisor protection because it cripples the hardware.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: allow disabling supervisor protect via DT
Steffen Trumtrar [Mon, 7 Jul 2014 09:41:26 +0000 (11:41 +0200)]
ARM: i.MX: allow disabling supervisor protect via DT

The i.MX SoCs allow to setup fine grained access rights to peripherals on the
AIPS bus.
This is done via the Peripheral Access Register (PAR) in e.g. the i.MX21
or in later SoC versions the Off-Platform Peripheral Access Control Register
(OPACR), e.g. i.MX53.
Under certain circumstances this leads to problems in which bus masters are
not granted their access rights to peripherals.
To be able to disable these restrictions on DT platforms, add a helper function
that looks for AIPS nodes in the DT and disables them for every compatible node
it finds.
The compatible has to be declared in the mach-specific entry file, where this
helper function should then be called.

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX27 clk: Add 26 MHz oscillator circuit clock gate
Alexander Shiyan [Sat, 5 Jul 2014 05:36:09 +0000 (09:36 +0400)]
ARM: i.MX27 clk: Add 26 MHz oscillator circuit clock gate

This patch adds missing 26 MHz oscillator circuit clock gate support.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX27 clk: Remove unused definitions
Alexander Shiyan [Sat, 5 Jul 2014 05:36:08 +0000 (09:36 +0400)]
ARM: i.MX27 clk: Remove unused definitions

This patch removes definitions which not used anywhere in the driver.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX27 clk: Introduce DT include for clock provider
Alexander Shiyan [Sat, 5 Jul 2014 05:36:06 +0000 (09:36 +0400)]
ARM: i.MX27 clk: Introduce DT include for clock provider

Use clock defines in order to make devicetrees more human readable.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Remove Freescale Logic Product Development i.MX27 Lite-Kit board support
Alexander Shiyan [Sat, 5 Jul 2014 05:00:01 +0000 (09:00 +0400)]
ARM: i.MX: Remove Freescale Logic Product Development i.MX27 Lite-Kit board support

The board has no insufficient support to be fully functional and seems
has no users. This patch removes support for this board.
However, the support may be added in the future by using the devicetree.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Remove excess symbols ARCH_MX1, ARCH_MX25 and MACH_MX27
Alexander Shiyan [Sat, 5 Jul 2014 04:51:57 +0000 (08:51 +0400)]
ARM: i.MX: Remove excess symbols ARCH_MX1, ARCH_MX25 and MACH_MX27

This patch removes excess symbols ARCH_MX1, ARCH_MX25 and MACH_MX27.
Instead we use SOC_IMX*.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Remove i.MX1 camera support
Alexander Shiyan [Sat, 5 Jul 2014 04:51:38 +0000 (08:51 +0400)]
ARM: i.MX: Remove i.MX1 camera support

i.MX1 camera driver has been removed by the commit 90b055898e.
This patch removes remaining support files for this camera.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: use PTR_ERR_OR_ZERO
Fabian Frederick [Fri, 4 Jul 2014 19:03:10 +0000 (21:03 +0200)]
ARM: imx: use PTR_ERR_OR_ZERO

replace IS_ERR/PTR_ERR

Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agobus: imx-weim: populate devices on a simple bus
Liu Ying [Fri, 4 Jul 2014 09:00:41 +0000 (17:00 +0800)]
bus: imx-weim: populate devices on a simple bus

There could be some memory map devices located in
a certain chip select region of the i.MX WEIM.
The devices could be attached to a simple bus(for
example, a AXI bus) whose root node is one child
device tree node of the i.MX WEIM device tree node.
There should be a bridge(very likely, software
transparent) bewteen the i.MX WEIM and the simple bus.
This patch makes the i.MX WEIM driver possible to
populate devices on a simple bus.  In this way, people
may try various IPs(in a FPGA, maybe) outside of i.MX
chips with the i.MX WEIM embedded.

Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: build cpu_is_imx6sl function conditionally
Arnd Bergmann [Thu, 3 Jul 2014 14:22:54 +0000 (16:22 +0200)]
ARM: imx: build cpu_is_imx6sl function conditionally

imx6q_pm_enter calls imx6sl_set_wait_clk when run on an imx6sl
based machine. However if support for imx6sl is not enabled
at compile time, this prevents us from building the kernel and
we get this link error instead:

arch/arm/mach-imx/built-in.o: In function `imx6q_pm_enter':
:(.text+0x4b84): undefined reference to `imx6sl_set_wait_clk'

This makes the cpu_is_imx6sl function conditionally return false
if imx6sl is disabled at compile-time, which matches what the
older cpu_is_mx* macros did. We have similar inline functions for
the other imx6 variants, but so far I have not run into a case
where the extra #ifdef is necessary.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: imx6sx uses imx6q cpuidle code
Arnd Bergmann [Thu, 3 Jul 2014 14:16:06 +0000 (16:16 +0200)]
ARM: imx: imx6sx uses imx6q cpuidle code

Building a kernel for imx6sx but without imx6q support results in
this link error because of the missing cpuidle driver:

arch/arm/mach-imx/built-in.o: In function `imx6sx_init_late'::(.init.text+0xc228):
 undefined reference to `imx6q_cpuidle_init'

This patch adds a Makefile entry so we always build support for
the imx6q_cpuidle code when at least one of the 6sx or 6q variants
are enabled.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: drop PL310 errata 588369 and 727915
Shawn Guo [Wed, 2 Jul 2014 07:24:30 +0000 (15:24 +0800)]
ARM: imx: drop PL310 errata 588369 and 727915

The PL310 integrated on i.MX6 series and VF610 are revision r3p1 and
later.  Per ARM PL310 errata document, 588369 is fixed in r2p0 and
727915 is fixed in r3p1.  Neither is needed for i.MX6 or VF610.  So
let's drop them.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx_v6_v7_defconfig: add FSL_EDMA and PRINTK_TIME
Stefan Agner [Wed, 2 Jul 2014 19:13:19 +0000 (21:13 +0200)]
ARM: imx_v6_v7_defconfig: add FSL_EDMA and PRINTK_TIME

Add EDMA for DMA support for Vybrid SoCs. Also add printk time.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: clk-imx6sx: register SSI/SSI_IPG as shared gate clocks
Fabio Estevam [Wed, 2 Jul 2014 14:58:51 +0000 (11:58 -0300)]
ARM: imx: clk-imx6sx: register SSI/SSI_IPG as shared gate clocks

SSI and SSI_IPG are clocks controlled by the same clock gating field, so
register them with imx_clk_gate2_shared.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx_v6_v7_defconfig: Enable flexcan driver for can support
Silvio Fricke [Tue, 1 Jul 2014 11:09:02 +0000 (13:09 +0200)]
ARM: imx_v6_v7_defconfig: Enable flexcan driver for can support

Signed-off-by: Silvio Fricke <silvio.fricke@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx_v6_v7_defconfig: Enable STMPE gpio support
Silvio Fricke [Tue, 1 Jul 2014 11:08:58 +0000 (13:08 +0200)]
ARM: imx_v6_v7_defconfig: Enable STMPE gpio support

Enable STMPE gpio support as this is used on MX6 Data Modul edm-qmx6
board.

Signed-off-by: Silvio Fricke <silvio.fricke@gmail.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: mark .dt_compat as const
Shawn Guo [Tue, 1 Jul 2014 08:03:00 +0000 (16:03 +0800)]
ARM: imx: mark .dt_compat as const

Otherwise GCC will mark the .init.rodata section R/W, which causes
a compile error once we add other real R/O data.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: mx6: Only check for 1.2GHz for mx6quad
Fabio Estevam [Tue, 1 Jul 2014 03:12:52 +0000 (00:12 -0300)]
ARM: mx6: Only check for 1.2GHz for mx6quad

It is only the mx6quad variant that can run up to 1.2GHz, so add the check
accordingly.

This avoids getting the following warning on a mx6solo:

failed to disable 1.2 GHz OPP

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx_v4_v5_defconfig: Add USB device options
Fabio Estevam [Wed, 25 Jun 2014 20:28:53 +0000 (17:28 -0300)]
ARM: imx_v4_v5_defconfig: Add USB device options

Allow USB device to work by default.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX25 clk: Use of_clk_init() for DT case
Denis Carikli [Wed, 25 Jun 2014 12:41:36 +0000 (14:41 +0200)]
ARM: i.MX25 clk: Use of_clk_init() for DT case

Replace .init_time() hook with of_clk_init() for DT targets.

Based on:
  d4347ee ARM: i.MX27 clk: Use of_clk_init() for DT case

Signed-off-by: Denis Carikli <denis@eukrea.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM i.MX25 clk: Fix gpt timer clock.
Denis Carikli [Wed, 25 Jun 2014 12:41:34 +0000 (14:41 +0200)]
ARM i.MX25 clk: Fix gpt timer clock.

The gpt0 timer clock has been wrong since:
  6bbaec5 ARM i.MX25: implement clocks using common clock framework

Signed-off-by: Denis Carikli <denis@eukrea.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX21 clk: Add devicetree support
Alexander Shiyan [Sun, 22 Jun 2014 13:17:09 +0000 (17:17 +0400)]
ARM: i.MX21 clk: Add devicetree support

This patch adds devicetree support CCM module for i.MX21 CPUs.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX21 clk: Cleanup driver
Alexander Shiyan [Sun, 22 Jun 2014 13:17:08 +0000 (17:17 +0400)]
ARM: i.MX21 clk: Cleanup driver

This is a cleanup for i.MX21 clk driver. This change includes:
- Reduce license text.
- Remove unused definitions.
- Remove unused #include and sort the rest.
- Remove useless comment.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX21 clk: Remove clk_register_clkdev() for unused clocks
Alexander Shiyan [Sun, 22 Jun 2014 13:17:07 +0000 (17:17 +0400)]
ARM: i.MX21 clk: Remove clk_register_clkdev() for unused clocks

This patch removes clk_register_clkdev() for the clocks that do not
have any users for boards and drivers.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX21 clk: Clock initialization rework
Alexander Shiyan [Sun, 22 Jun 2014 13:17:06 +0000 (17:17 +0400)]
ARM: i.MX21 clk: Clock initialization rework

This patch perform rework i.MX21 clock initialization. This includes
adding missing clocks and sort clocks by register address.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: clk-imx51-imx53: Remove clk_register_clkdev()
Fabio Estevam [Tue, 24 Jun 2014 18:42:58 +0000 (15:42 -0300)]
ARM: clk-imx51-imx53: Remove clk_register_clkdev()

mx51 and mx53 are device tree only platforms, so we no longer need all these
calls to clk_register_clkdev().

Only keep cpu0 and gpc_dvfs clk_register_clkdev() calls.

Tested on imx51-babbage and imx53-qsb boards.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: add standby mode support for suspend
Anson Huang [Mon, 23 Jun 2014 08:42:44 +0000 (16:42 +0800)]
ARM: imx: add standby mode support for suspend

Add standby mode support for suspend, to enter standby mode:

echo standby > /sys/power/state;

Use UART or RTC alarm to wake up system, when system enters
standby mode, SOC will enter STOP mode with ARM core kept
power on and 24M XTAL on.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: mem bit must be cleared before entering DSM mode
Anson Huang [Mon, 23 Jun 2014 08:42:43 +0000 (16:42 +0800)]
ARM: imx: mem bit must be cleared before entering DSM mode

According to hardware design, mem bit must be clear before
entering DSM mode, as ARM core will be power gated in DSM mode.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx6qdl: switch to use macro for clock ID
Shawn Guo [Sun, 15 Jun 2014 11:35:10 +0000 (19:35 +0800)]
ARM: imx6qdl: switch to use macro for clock ID

Instead of using enum for clock ID, let's switch imx6qdl clock driver to
use macro.  In this case, device tree can reuse these macros to improve
readability.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: add cpuidle support for i.mx6sx
Anson Huang [Fri, 20 Jun 2014 05:44:05 +0000 (13:44 +0800)]
ARM: imx: add cpuidle support for i.mx6sx

Add cpuidle support for i.MX6SX, derive from i.MX6Q's
cpuidle, two levels supported:

1. WFI;
2. WAIT mode.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: add suspend support for i.mx6sx
Anson Huang [Fri, 20 Jun 2014 05:20:54 +0000 (13:20 +0800)]
ARM: imx: add suspend support for i.mx6sx

Add suspend support for i.MX6SX.

To enter suspend, echo mem > /sys/power/state.
To exit suspend, using RTC alarm or enable debug UART wakeup.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Remove Freescale i.MX27 IP Camera board support
Alexander Shiyan [Wed, 18 Jun 2014 17:26:39 +0000 (21:26 +0400)]
ARM: i.MX: Remove Freescale i.MX27 IP Camera board support

The board has no insufficient support to be fully functional and seems
has no users. This patch removes support for this board. However, the
support may be added in the future by using the devicetree.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX system: Add a reset fallback if base address of watchdog is not set
Alexander Shiyan [Fri, 13 Jun 2014 07:26:13 +0000 (11:26 +0400)]
ARM: i.MX system: Add a reset fallback if base address of watchdog is not set

This patch adds a reset fallback if base address of watchdog is not set.
This is intended for a targets not compatible with imx-21 watchdog,
i.MX1 for example.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX system: Simplify handling watchdog clock
Alexander Shiyan [Fri, 13 Jun 2014 07:26:12 +0000 (11:26 +0400)]
ARM: i.MX system: Simplify handling watchdog clock

This patch simplifies handling watchdog clock a bit.
As an additional change, now we properly check WDT clock in a reset
function.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx_v6_v7_defconfig: Select CONFIG_SOC_IMX6SX
Fabio Estevam [Tue, 17 Jun 2014 00:15:52 +0000 (21:15 -0300)]
ARM: imx_v6_v7_defconfig: Select CONFIG_SOC_IMX6SX

Let mx6sx be built by default.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX clk: Move clock check function in common location
Alexander Shiyan [Tue, 10 Jun 2014 15:40:26 +0000 (19:40 +0400)]
ARM: i.MX clk: Move clock check function in common location

This patch moves clock check function in common i.MX location
and switch i.MX clk drivers to use this new function.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX27 clk: Use of_clk_init() for DT case
Alexander Shiyan [Sat, 7 Jun 2014 16:09:26 +0000 (20:09 +0400)]
ARM: i.MX27 clk: Use of_clk_init() for DT case

Replace .init_time() hook with of_clk_init() for DT targets.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX27 clk: Separate DT and non-DT init procedure
Alexander Shiyan [Sat, 7 Jun 2014 16:09:25 +0000 (20:09 +0400)]
ARM: i.MX27 clk: Separate DT and non-DT init procedure

This patch separates DT and non-DT clock initialization procedure,
so we can avoid a lot of unneeded clk_register_clkdev() for DT case.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Remove excess variable
Alexander Shiyan [Tue, 27 May 2014 09:04:47 +0000 (13:04 +0400)]
ARM: i.MX: Remove excess variable

Base address for driver is global, there are no need to use
intermediate variable for it.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Use of_clk_get_by_name() for timer clocks for DT case.
Alexander Shiyan [Tue, 27 May 2014 09:04:46 +0000 (13:04 +0400)]
ARM: i.MX: Use of_clk_get_by_name() for timer clocks for DT case.

Use of_clk_get_by_name() for timer clocks for DT case.
This patch eliminates a lot of unneeded clk_register_clkdev()
calls for GPT.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: defconfig: Select CONFIG_FHANDLE
Fabio Estevam [Fri, 23 May 2014 13:27:37 +0000 (10:27 -0300)]
ARM: imx: defconfig: Select CONFIG_FHANDLE

CONFIG_FHANDLE=y is needed when running systemd with version >=210, so that it
can spawn a serial tty via getty.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: remove mx51.h and mx53.h
Shawn Guo [Tue, 20 May 2014 07:54:58 +0000 (15:54 +0800)]
ARM: imx5: remove mx51.h and mx53.h

Now all the macros in mx51.h and mx53.h are used nowhere, so remove
them.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: clean function declarations in mx51.h
Shawn Guo [Tue, 20 May 2014 07:09:42 +0000 (15:09 +0800)]
ARM: imx5: clean function declarations in mx51.h

The mx51_display_revision() is a dead declaration.  Remove it.  Also,
move mx51_revision() into common.h.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: remove file mm-imx5.c
Shawn Guo [Tue, 20 May 2014 07:46:46 +0000 (15:46 +0800)]
ARM: imx5: remove file mm-imx5.c

The only code left in mm-imx5.c is to create static mapping.  While all
IMX platform code are moved to use dynamic mapping, the file can just be
removed now.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: move init hooks into mach-imx5x.c
Shawn Guo [Tue, 20 May 2014 07:34:06 +0000 (15:34 +0800)]
ARM: imx5: move init hooks into mach-imx5x.c

These imx5 init_early[late] hooks are called only from mach-imx5x.c.
Let's move them into mach-imx5x.c.

While at it, replace the static mapping in imx51_ipu_mipi_setup() with
dynamic mapping.  Also this function and imx_src_init() do not
necessarily to be called at .init_early hook, so move them into
.init_machine.

The mxc_iomux_v3_init() is dropped from imx51_init_early() in the
moving, since it's only needed by non-DT boot.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: use dynamic mapping for Cortex and GPC block
Shawn Guo [Tue, 20 May 2014 06:55:15 +0000 (14:55 +0800)]
ARM: imx5: use dynamic mapping for Cortex and GPC block

The imx5 pm code uses static mapping to access Cortex and GPC registers.
The patch create struct imx5_pm_data to encode physical address of
Cortex and GPC block, and create dynamic mapping for them at run-time.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: reuse clock CCM mapping in pm code
Shawn Guo [Tue, 20 May 2014 05:41:36 +0000 (13:41 +0800)]
ARM: imx5: reuse clock CCM mapping in pm code

The imx5 pm code needs to access CCM registers.  Let's remove the use
of CCM static mapping in pm code by reusing the dynamic mapping created
in clock code.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: use dynamic mapping for DPLL block
Shawn Guo [Tue, 20 May 2014 05:08:45 +0000 (13:08 +0800)]
ARM: imx5: use dynamic mapping for DPLL block

Replace the static mapping of DPLL block with dynamic mapping by
calling ioremap().  Ideally, this should be done by calling of_iomap(),
so that the physical address of DPLL can also be retrieved from device
tree.  But unfortunately, DPLL blocks are not defined in DT in the first
place.  So to maintain the compatibility of existing DTB, we use
ioremap() with physical address defines in the code.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: use dynamic mapping for CCM block
Shawn Guo [Tue, 20 May 2014 03:20:28 +0000 (11:20 +0800)]
ARM: imx5: use dynamic mapping for CCM block

Replace the static mapping of CCM block with dynamic mapping and
retrieve CCM base address from device tree.  Though it's not nice to
encode the variable ccm_base in macros, it helps to avoid a massive
churn on the code.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: remove header crm-regs-imx5.h
Shawn Guo [Tue, 20 May 2014 02:23:50 +0000 (10:23 +0800)]
ARM: imx5: remove header crm-regs-imx5.h

Most of the macros in crm-regs-imx5.h are used nowhere.  Let's move the
needed ones into the C files, and remove the header.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: retrieve iim base from device tree
Shawn Guo [Mon, 19 May 2014 14:23:43 +0000 (22:23 +0800)]
ARM: imx5: retrieve iim base from device tree

Instead of using static define and mapping, the patch changes imx5 code
that reads chip revision from IIM to retrieve base address from device
tree and use dynamic mapping.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: call mxc_timer_init_dt() on imx51
Shawn Guo [Mon, 19 May 2014 13:15:03 +0000 (21:15 +0800)]
ARM: imx5: call mxc_timer_init_dt() on imx51

Since i.MX51 supports DT only, it's more appropriate to call
mxc_timer_init_dt() than mxc_timer_init() to initialize timer.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: remove function imx51_soc_init()
Shawn Guo [Mon, 19 May 2014 13:08:43 +0000 (21:08 +0800)]
ARM: imx5: remove function imx51_soc_init()

The function imx51_soc_init() was used by non-DT boot only.  Since
i.MX51 supports DT only, the function can be removed now.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: tzic_init_irq() can directly be .init_irq hook
Shawn Guo [Mon, 19 May 2014 12:19:06 +0000 (20:19 +0800)]
ARM: imx5: tzic_init_irq() can directly be .init_irq hook

After i.MX51 supports DT only, tzic_init_irq() can figure out the
tzic_base on its own.  Thus, it can directly be .init_irq hook, and
mx51[53]_init_irq() can be saved.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: drop arguments from mx5_clocks_common_init()
Shawn Guo [Mon, 19 May 2014 07:47:32 +0000 (15:47 +0800)]
ARM: imx5: drop arguments from mx5_clocks_common_init()

The function mx5_clocks_common_init() was created with a number of
arguments to pass oscillator clock rate in non-DT boot.  Since i.MX5
is DT only platform, the arguments can be dropped, and the clock rate
can just be retrieved from device tree.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: make mx51_clocks_init() a DT call
Shawn Guo [Mon, 19 May 2014 07:43:42 +0000 (15:43 +0800)]
ARM: imx5: make mx51_clocks_init() a DT call

Since i.MX51 becomes a DT only platform, we can make mx51_clocks_init()
a DT call and save function mx51_clocks_init_dt() now.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: remove i.MX5 non-DT device registration helpers
Shawn Guo [Mon, 19 May 2014 06:19:11 +0000 (14:19 +0800)]
ARM: imx5: remove i.MX5 non-DT device registration helpers

i.MX5 is DT only platforms, so these non-DT device registration helpers
is used nowhere.  Remove them.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: remove imx51 non-DT support files
Shawn Guo [Mon, 19 May 2014 06:01:54 +0000 (14:01 +0800)]
ARM: imx5: remove imx51 non-DT support files

Since i.MX51 becomes a DT only platform, those non-DT support files can
be removed now.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: drop option MACH_IMX51_DT
Shawn Guo [Mon, 19 May 2014 05:47:43 +0000 (13:47 +0800)]
ARM: imx5: drop option MACH_IMX51_DT

Since i.MX51 becomes DT only now, we can drop option MACH_IMX51_DT and
just use SOC_IMX51 instead.  While at it, rename imx51-dt.c to
mach-imx51.c to align with the name schema of other IMX DT only
platforms.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx5: move SOC_IMX5 and SOC_IMX51 into 'Device tree only'
Shawn Guo [Mon, 19 May 2014 05:37:50 +0000 (13:37 +0800)]
ARM: imx5: move SOC_IMX5 and SOC_IMX51 into 'Device tree only'

After moving SOC_IMX51 support over to device tree, all i.MX5 support
becomes device tree only now.  So options SOC_IMX5 and SOC_IMX51 can
just be under 'Device tree only'.

While at it, 'select ARCH_MXC_IOMUX_V3' is dropped, since it's only
needed by non-DT build before.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: move EHCI platform defines out of platform_data header
Shawn Guo [Mon, 19 May 2014 12:41:52 +0000 (20:41 +0800)]
ARM: imx: move EHCI platform defines out of platform_data header

The platform_data header usb-ehci-mxc.h has a lot of stuff used by only
IMX platform code.  They shouldn't be really in this header but a IMX
platform local header.  Create ehci.h and move these stuff into it.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Remove registration helper for i.MX1 USB UDC
Alexander Shiyan [Tue, 20 May 2014 16:43:51 +0000 (20:43 +0400)]
ARM: i.MX: Remove registration helper for i.MX1 USB UDC

imx_udc driver was removed from the kernel of about 10 months ago.
This patch removes a registration helper for this driver and
orphaned driver header.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX1 clk: Add devicetree support
Alexander Shiyan [Tue, 20 May 2014 16:43:49 +0000 (20:43 +0400)]
ARM: i.MX1 clk: Add devicetree support

This patch adds devicetree support CCM module for i.MX1 (MC9328MX1) CPUs.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: imx: remove unused defines
Paul Bolle [Fri, 16 May 2014 09:09:29 +0000 (11:09 +0200)]
ARM: imx: remove unused defines

None of the defines "for modules using static and dynamic DMA channels"
are used. Remove these.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoARM: i.MX: Select HAVE_IMX_SRC for i.MX5 globally
Alexander Shiyan [Mon, 19 May 2014 05:21:17 +0000 (13:21 +0800)]
ARM: i.MX: Select HAVE_IMX_SRC for i.MX5 globally

No reason to choose a symbol HAVE_IMX_SRC separately for each supported
i.MX5 CPU, this patch selects this symbol globally for i.MX5.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoMerge tag 'imx-fixes-3.16-2' into imx/soc
Shawn Guo [Fri, 18 Jul 2014 08:09:07 +0000 (16:09 +0800)]
Merge tag 'imx-fixes-3.16-2' into imx/soc

The i.MX fixes for 3.16, 2nd take:

It fixes a hard machine hang regression for boards where only pcie is
active but no sata, as the latest imx6-pcie driver is no longer enabling
the upstream clock directly but only lvds clk out.

10 years agoARM: clk-imx6q: parent lvds_sel input from upstream clock gates
Lucas Stach [Thu, 17 Jul 2014 10:20:14 +0000 (12:20 +0200)]
ARM: clk-imx6q: parent lvds_sel input from upstream clock gates

The i.MX6 reference manual doesn't make a clear distinction
between the fixed clock divider and the enable gate for the
pcie and sata reference clocks. This lead to the lvds mux
inputs in the imx6q clk driver to be parented from the
ref clock (which is the divider) instead of the actual gate,
which in turn prevents the upstream clock to actually be
enabled when lvds clk out is active.

This fixes a hard machine hang regression in kernel 3.16 for
boards where only pcie is active but no sata, as with this
kernel version the imx6-pcie driver is no longer enabling
the upstream clock directly but only lvds clk out.

Reported-by: Arne Ruhnau <arne.ruhnau@target-sg.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Tested-by: Arne Ruhnau <arne.ruhnau@target-sg.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
10 years agoLinux 3.16-rc3 v3.16-rc3
Linus Torvalds [Sun, 29 Jun 2014 21:11:36 +0000 (14:11 -0700)]
Linux 3.16-rc3

10 years agoMerge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Linus Torvalds [Sun, 29 Jun 2014 20:40:08 +0000 (13:40 -0700)]
Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:
 "Another round of ARM fixes.  The largest change here is the L2 changes
  to work around problems for the Armada 37x/380 devices, where most of
  the size comes down to comments rather than code.

  The other significant fix here is for the ptrace code, to ensure that
  rewritten syscalls work as intended.  This was pointed out by Kees
  Cook, but Will Deacon reworked the patch to be more elegant.

  The remainder are fairly trivial changes"

* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
  ARM: 8087/1: ptrace: reload syscall number after secure_computing() check
  ARM: 8086/1: Set memblock limit for nommu
  ARM: 8085/1: sa1100: collie: add top boot mtd partition
  ARM: 8084/1: sa1100: collie: revert back to cfi_probe
  ARM: 8080/1: mcpm.h: remove unused variable declaration
  ARM: 8076/1: mm: add support for HW coherent systems in PL310 cache

10 years agoMAINTAINERS: exceptions for Documentation maintainer
Randy Dunlap [Sat, 28 Jun 2014 01:28:56 +0000 (18:28 -0700)]
MAINTAINERS: exceptions for Documentation maintainer

Note that I don't maintain Documentation/ABI/,
Documentation/devicetree/, or the language translation files.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
10 years agoDocumentation: add section about git to email-clients.txt
Dan Carpenter [Sat, 28 Jun 2014 01:28:46 +0000 (18:28 -0700)]
Documentation: add section about git to email-clients.txt

These days most people use git to send patches so I have added a section
about that.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
10 years agoARM: 8087/1: ptrace: reload syscall number after secure_computing() check
Will Deacon [Fri, 27 Jun 2014 16:01:47 +0000 (17:01 +0100)]
ARM: 8087/1: ptrace: reload syscall number after secure_computing() check

On the syscall tracing path, we call out to secure_computing() to allow
seccomp to check the syscall number being attempted. As part of this, a
SIGTRAP may be sent to the tracer and the syscall could be re-written by
a subsequent SET_SYSCALL ptrace request. Unfortunately, this new syscall
is ignored by the current code unless TIF_SYSCALL_TRACE is also set on
the current thread.

This patch slightly reworks the enter path of the syscall tracing code
so that we always reload the syscall number from
current_thread_info()->syscall after the potential ptrace traps.

Acked-by: Kees Cook <keescook@chromium.org>
Tested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoARM: 8086/1: Set memblock limit for nommu
Laura Abbott [Fri, 27 Jun 2014 09:17:27 +0000 (10:17 +0100)]
ARM: 8086/1: Set memblock limit for nommu

Commit 1c2f87c (ARM: 8025/1: Get rid of meminfo) changed find_limits
to use memblock_get_current_limit for calculating the max_low pfn.
nommu targets never actually set a limit on memblock though which
means memblock_get_current_limit will just return the default
value. Set the memblock_limit to be the end of DDR to make sure
bounds are calculated correctly.

Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoARM: 8085/1: sa1100: collie: add top boot mtd partition
Andrea Adami [Wed, 25 Jun 2014 21:32:26 +0000 (22:32 +0100)]
ARM: 8085/1: sa1100: collie: add top boot mtd partition

The CFI mapping is now perfect so we can expose the top block, read only.
There isn't much to read, though, just the sharpsl_params values.

Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoARM: 8084/1: sa1100: collie: revert back to cfi_probe
Andrea Adami [Wed, 25 Jun 2014 21:31:15 +0000 (22:31 +0100)]
ARM: 8084/1: sa1100: collie: revert back to cfi_probe

Reverts commit d26b17edafc45187c30cae134a5e5429d58ad676
ARM: sa1100: collie.c: fall back to jedec_probe flash detection

Unfortunately the detection was challenged on the defective unit used for tests:
one of the NOR chips did not respond to the CFI query.
Moreover that bad device needed extra delays on erase-suspend/resume cycles.

Tested personally on 3 different units and with feedback of two other users.

Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoARM: 8080/1: mcpm.h: remove unused variable declaration
Nicolas Pitre [Thu, 19 Jun 2014 21:57:01 +0000 (22:57 +0100)]
ARM: 8080/1: mcpm.h: remove unused variable declaration

The sync_phys variable has been replaced by link time computation in
mcpm_head.S before the code was submitted upstream.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoARM: 8076/1: mm: add support for HW coherent systems in PL310 cache
Thomas Petazzoni [Fri, 13 Jun 2014 09:58:38 +0000 (10:58 +0100)]
ARM: 8076/1: mm: add support for HW coherent systems in PL310 cache

When a PL310 cache is used on a system that provides hardware
coherency, the outer cache sync operation is useless, and can be
skipped. Moreover, on some systems, it is harmful as it causes
deadlocks between the Marvell coherency mechanism, the Marvell PCIe
controller and the Cortex-A9.

To avoid this, this commit introduces a new Device Tree property
'arm,io-coherent' for the L2 cache controller node, valid only for the
PL310 cache. It identifies the usage of the PL310 cache in an I/O
coherent configuration. Internally, it makes the driver disable the
outer cache sync operation.

Note that technically speaking, a fully coherent system wouldn't
require any of the other .outer_cache operations. However, in
practice, when booting secondary CPUs, these are not yet coherent, and
therefore a set of cache maintenance operations are necessary at this
point. This explains why we keep the other .outer_cache operations and
only ->sync is disabled.

While in theory any write to a PL310 register could cause the
deadlock, in practice, disabling ->sync is sufficient to workaround
the deadlock, since the other cache maintenance operations are only
used in very specific situations.

Contrary to previous versions of this patch, this new version does not
simply NULL-ify the ->sync member, because the l2c_init_data
structures are now 'const' and therefore cannot be modified, which is
a good thing. Therefore, this patch introduces a separate
l2c_init_data instance, called of_l2c310_coherent_data.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
10 years agoMerge tag 'spi-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Linus Torvalds [Sat, 28 Jun 2014 18:32:32 +0000 (11:32 -0700)]
Merge tag 'spi-v3.16-rc2' of git://git./linux/kernel/git/broonie/spi

Pull spi fixes from Mark Brown:
 "A few driver specific fixes, the biggest one being a fix for the newly
  added Qualcomm SPI controller driver to make it not use its internal
  chip select due to hardware bugs, replacing it with GPIOs"

* tag 'spi-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
  spi: qup: Remove chip select function
  spi: qup: Fix order of spi_register_master
  spi: sh-sci: fix use-after-free in sh_sci_spi_remove()
  spi/pxa2xx: fix incorrect SW mode chipselect setting for BayTrail LPSS SPI

10 years agoMerge tag 'regulator-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sat, 28 Jun 2014 18:31:58 +0000 (11:31 -0700)]
Merge tag 'regulator-v3.16-rc2' of git://git./linux/kernel/git/broonie/regulator

Pull regulator fixes from Mark Brown:
 "Several driver specific fixes here, the palmas fixes being especially
  important for a range of boards - the recent updates to support new
  devices have introduced several regressions"

* tag 'regulator-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
  regulator: tps65218: Correct the the config register for LDO1
  regulator: tps65218: Add the missing of_node assignment in probe
  regulator: palmas: fix typo in enable_reg calculation
  regulator: bcm590xx: fix vbus name
  regulator: palmas: Fix SMPS enable/disable/is_enabled

10 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Linus Torvalds [Sat, 28 Jun 2014 16:43:58 +0000 (09:43 -0700)]
Merge git://git./linux/kernel/git/nab/target-pending

Pull SCSI target fixes from Nicholas Bellinger:
 "Mostly minor fixes this time around.  The highlights include:

   - iscsi-target CHAP authentication fixes to enforce explicit key
     values (Tejas Vaykole + rahul.rane)
   - fix a long-standing OOPs in target-core when a alua configfs
     attribute is accessed after port symlink has been removed.
     (Sebastian Herbszt)
   - fix a v3.10.y iscsi-target regression causing the login reject
     status class/detail to be ignored (Christoph Vu-Brugier)
   - fix a v3.10.y iscsi-target regression to avoid rejecting an
     existing ITT during Data-Out when data-direction is wrong (Santosh
     Kulkarni + Arshad Hussain)
   - fix a iscsi-target related shutdown deadlock on UP kernels (Mikulas
     Patocka)
   - fix a v3.16-rc1 build issue with vhost-scsi + !CONFIG_NET (MST)"

* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
  iscsi-target: fix iscsit_del_np deadlock on unload
  iovec: move memcpy_from/toiovecend to lib/iovec.c
  iscsi-target: Avoid rejecting incorrect ITT for Data-Out
  tcm_loop: Fix memory leak in tcm_loop_submission_work error path
  iscsi-target: Explicily clear login response PDU in exception path
  target: Fix left-over se_lun->lun_sep pointer OOPs
  iscsi-target; Enforce 1024 byte maximum for CHAP_C key value
  iscsi-target: Convert chap_server_compute_md5 to use kstrtoul

10 years agoMerge remote-tracking branches 'spi/fix/pxa2xx', 'spi/fix/qup' and 'spi/fix/sh-sci...
Mark Brown [Sat, 28 Jun 2014 13:01:23 +0000 (14:01 +0100)]
Merge remote-tracking branches 'spi/fix/pxa2xx', 'spi/fix/qup' and 'spi/fix/sh-sci' into spi-linus

10 years agoMerge remote-tracking branches 'regulator/fix/bcm590xx', 'regulator/fix/palmas' and...
Mark Brown [Sat, 28 Jun 2014 13:01:04 +0000 (14:01 +0100)]
Merge remote-tracking branches 'regulator/fix/bcm590xx', 'regulator/fix/palmas' and 'regulator/fix/tps65218' into regulator-linus

10 years agoiscsi-target: fix iscsit_del_np deadlock on unload
Mikulas Patocka [Mon, 23 Jun 2014 17:42:37 +0000 (13:42 -0400)]
iscsi-target: fix iscsit_del_np deadlock on unload

On uniprocessor preemptible kernel, target core deadlocks on unload. The
following events happen:
* iscsit_del_np is called
* it calls send_sig(SIGINT, np->np_thread, 1);
* the scheduler switches to the np_thread
* the np_thread is woken up, it sees that kthread_should_stop() returns
  false, so it doesn't terminate
* the np_thread clears signals with flush_signals(current); and goes back
  to sleep in iscsit_accept_np
* the scheduler switches back to iscsit_del_np
* iscsit_del_np calls kthread_stop(np->np_thread);
* the np_thread is waiting in iscsit_accept_np and it doesn't respond to
  kthread_stop

The deadlock could be resolved if the administrator sends SIGINT signal to
the np_thread with killall -INT iscsi_np

The reproducible deadlock was introduced in commit
db6077fd0b7dd41dc6ff18329cec979379071f87, but the thread-stopping code was
racy even before.

This patch fixes the problem. Using kthread_should_stop to stop the
np_thread is unreliable, so we test np_thread_state instead. If
np_thread_state equals ISCSI_NP_THREAD_SHUTDOWN, the thread exits.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
10 years agoMerge tag 'iommu-fixes-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sat, 28 Jun 2014 02:00:45 +0000 (19:00 -0700)]
Merge tag 'iommu-fixes-v3.16-rc1' of git://git./linux/kernel/git/joro/iommu

Pull IOMMU fixes from Joerg Roedel:

 - fix VT-d regression with handling multiple RMRR entries per device

 - fix a small race that was left in the mmu_notifier handling in the
   AMD IOMMUv2 driver

* tag 'iommu-fixes-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
  iommu/amd: Fix small race between invalidate_range_end/start
  iommu/vt-d: fix bug in handling multiple RMRRs for the same PCI device

10 years agoMerge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Linus Torvalds [Sat, 28 Jun 2014 01:43:03 +0000 (18:43 -0700)]
Merge branch 'x86/urgent' of git://git./linux/kernel/git/tip/tip

Pull x86 fixes from Peter Anvin:
 "A pile of fixes related to the VDSO, EFI and 32-bit badsys handling.

  It turns out that removing the section headers from the VDSO breaks
  gdb, so this puts back most of them.  A very simple typo broke
  rt_sigreturn on some versions of glibc, with obviously disastrous
  results.  The rest is pretty much fixes for the corresponding fallout.

  The EFI fixes fixes an arithmetic overflow on 32-bit systems and
  quiets some build warnings.

  Finally, when invoking an invalid system call number on x86-32, we
  bypass a bunch of handling, which can make the audit code oops"

* 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  efi-pstore: Fix an overflow on 32-bit builds
  x86/vdso: Error out in vdso2c if DT_RELA is present
  x86/vdso: Move DISABLE_BRANCH_PROFILING into the vdso makefile
  x86_32, signal: Fix vdso rt_sigreturn
  x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
  x86/vdso: Create .build-id links for unstripped vdso files
  x86/vdso: Remove some redundant in-memory section headers
  x86/vdso: Improve the fake section headers
  x86/vdso2c: Use better macros for ELF bitness
  x86/vdso: Discard the __bug_table section
  efi: Fix compiler warnings (unused, const, type)

10 years agoMerge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Linus Torvalds [Sat, 28 Jun 2014 01:37:56 +0000 (18:37 -0700)]
Merge branch 'upstream' of git://git.linux-mips.org/ralf/upstream-linus

Pull MIPS fixes from Ralf Baechle:
 "This is dominated by a large number of changes necessary for the MIPS
  BPF code.  code.  Aside of that there are

   - a fix for the MSC system controller support code.
   - a Turbochannel fix.
   - a recordmcount fix that's MIPS-specific.
   - barrier fixes to smp-cps / pm-cps after unrelated changes elsewhere
     in the kernel.
   - revert support for MSA registers in the signal frames.  The
     reverted patch did modify the signal stack frame which of course is
     inacceptable.
   - fix math-emu build breakage with older compilers.
   - some related cleanup.
   - fix Lasat build error if CONFIG_CRC32 isn't set to y by the user"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (27 commits)
  MIPS: Lasat: Fix build error if CRC32 is not enabled.
  TC: Handle device_register() errors.
  MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region
  MIPS: bpf: Fix stack space allocation for BPF memwords on MIPS64
  MIPS: BPF: Use 32 or 64-bit load instruction to load an address to register
  MIPS: bpf: Fix PKT_TYPE case for big-endian cores
  MIPS: BPF: Prevent kernel fall over for >=32bit shifts
  MIPS: bpf: Drop update_on_xread and always initialize the X register
  MIPS: bpf: Fix is_range() semantics
  MIPS: bpf: Use pr_debug instead of pr_warn for unhandled opcodes
  MIPS: bpf: Fix return values for VLAN_TAG_PRESENT case
  MIPS: bpf: Use correct mask for VLAN_TAG case
  MIPS: bpf: Fix branch conditional for BPF_J{GT/GE} cases
  MIPS: bpf: Add SEEN_SKB to flags when looking for the PKT_TYPE
  MIPS: bpf: Use 'andi' instead of 'and' for the VLAN cases
  MIPS: bpf: Return error code if the offset is a negative number
  MIPS: bpf: Use the LO register to get division's quotient
  MIPS: mm: uasm: Fix lh micro-assembler instruction
  MIPS: uasm: Add SLT uasm instruction
  MIPS: uasm: Add s3s1s2 instruction builder
  ...