profile/ivi/kernel-x86-ivi.git
11 years agoMerge tag 'sunxi-fixes-for-3.8' of git://github.com/mripard/linux into next/soc
Olof Johansson [Sat, 8 Dec 2012 00:29:05 +0000 (16:29 -0800)]
Merge tag 'sunxi-fixes-for-3.8' of git://github.com/mripard/linux into next/soc

From Maxime Ripard:
Fixes in sunXi related drivers for 3.8

* tag 'sunxi-fixes-for-3.8' of git://github.com/mripard/linux:
  irqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids
  clocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids

11 years agoirqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids
Axel Lin [Sun, 2 Dec 2012 14:40:24 +0000 (22:40 +0800)]
irqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids

The of_device_id table is supposed to be zero-terminated.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoclocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids
Axel Lin [Sun, 2 Dec 2012 15:08:19 +0000 (23:08 +0800)]
clocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids

The of_device_id table is supposed to be zero-terminated.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoMerge branch 'integrator/irq' into next/soc
Olof Johansson [Fri, 30 Nov 2012 18:00:27 +0000 (10:00 -0800)]
Merge branch 'integrator/irq' into next/soc

Picking up one compilation warning fix for integrator.

From Linus Walleij:
* integrator/irq:
  irq: versatile: delete dangling variable

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoirq: versatile: delete dangling variable
Linus Walleij [Wed, 28 Nov 2012 16:40:50 +0000 (17:40 +0100)]
irq: versatile: delete dangling variable

This one was just creating noise like this:

drivers/irqchip/irq-versatile-fpga.c: In function 'fpga_irq_of_init':
drivers/irqchip/irq-versatile-fpga.c:180:24: warning: unused variable 'f'

Reported-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge branch 'sunxi/soc2' into next/soc
Olof Johansson [Fri, 30 Nov 2012 17:57:00 +0000 (09:57 -0800)]
Merge branch 'sunxi/soc2' into next/soc

Adding one patch to fix build error.

* sunxi/soc2:
  ARM: sunxi: add missing include for mdelay()

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: sunxi: add missing include for mdelay()
Josh Cartwright [Fri, 30 Nov 2012 01:37:30 +0000 (19:37 -0600)]
ARM: sunxi: add missing include for mdelay()

  CC      arch/arm/mach-sunxi/sunxi.o
./arch/arm/mach-sunxi/sunxi.c: In function 'sunxi_restart':
./arch/arm/mach-sunxi/sunxi.c:55:3: error: implicit declaration of function 'mdelay' [-Werror=implicit-function-declaration]

Signed-off-by: Josh Cartwright <josh.cartwright@ni.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge branch 'next/devel-samsung-3' of git://git.kernel.org/pub/scm/linux/kernel...
Olof Johansson [Fri, 30 Nov 2012 17:31:49 +0000 (09:31 -0800)]
Merge branch 'next/devel-samsung-3' of git://git./linux/kernel/git/kgene/linux-samsung into next/soc

From Kukjin Kim:

This is including Samsung small updates(developments) for v3.8.

Add node PL330 MDMA1 and UART3 for DEBUG_LL and secondary cpu bring-up
for exynos4412.

* 'next/devel-samsung-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: dts: add node for PL330 MDMA1 controller for exynos4
  ARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412
  ARM: EXYNOS: add UART3 to DEBUG_LL ports

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge branch 'next/pinctrl-samsung-2' of git://git.kernel.org/pub/scm/linux/kernel...
Olof Johansson [Fri, 30 Nov 2012 17:28:34 +0000 (09:28 -0800)]
Merge branch 'next/pinctrl-samsung-2' of git://git./linux/kernel/git/kgene/linux-samsung into next/soc

From Kukjin Kim:
* 'next/pinctrl-samsung-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  pinctrl: samsung: Do not initialise statics to 0

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge branch 'next/cam-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Fri, 30 Nov 2012 17:25:16 +0000 (09:25 -0800)]
Merge branch 'next/cam-samsung' of git://git./linux/kernel/git/kgene/linux-samsung into next/soc

From Kukjin Kim:
Just adding camif gpio setup and clkdev.

* 'next/cam-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: S3C24XX: Add clkdev entry for camif-upll clock
  ARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers
  + Linux 3.7-rc6

Conflicts due to the 3.7-rc6 sync: arch/arm/mach-highbank/system.c
include/linux/clk-provider.h, resolved as in other branches.

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: EXYNOS: Avoid early use of of_machine_is_compatible()
Doug Anderson [Tue, 27 Nov 2012 19:53:14 +0000 (11:53 -0800)]
ARM: EXYNOS: Avoid early use of of_machine_is_compatible()

The recent commit "ARM: EXYNOS: add support for EXYNOS5440 SoC" broke
support for exynos5250 because of_machine_is_compatible() was used too
early in the boot process.  It also probably meant that the exynos5440
failed to use the proper iotable.  Switch to use
of_flat_dt_is_compatible() in both of these cases.

The failure I was seeing in exynos5250 because of this was:
  Division by zero in kernel.
  [<80015ed4>] (unwind_backtrace+0x0/0xec) from [<8045c7a4>] (dump_stack+0x20/0x24)
  [<8045c7a4>] (dump_stack+0x20/0x24) from [<80012990>] (__div0+0x20/0x28)
  [<80012990>] (__div0+0x20/0x28) from [<8021ab04>] (Ldiv0_64+0x8/0x18)
  [<8021ab04>] (Ldiv0_64+0x8/0x18) from [<80068560>] (__clocksource_updatefreq_scale+0x54/0x134)
  [<80068560>] (__clocksource_updatefreq_scale+0x54/0x134) from [<8006865c>] (__clocksource_register_scale+0x1c/0x54)
  [<8006865c>] (__clocksource_register_scale+0x1c/0x54) from [<80612a18>] (exynos_timer_init+0x100/0x1e8)
  [<80612a18>] (exynos_timer_init+0x100/0x1e8) from [<8060d184>] (time_init+0x28/0x38)
  [<8060d184>] (time_init+0x28/0x38) from [<8060a754>] (start_kernel+0x1e0/0x3c8)
  [<8060a754>] (start_kernel+0x1e0/0x3c8) from [<40008078>] (0x40008078)

Signed-off-by: Doug Anderson <dianders@chromium.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
[olofj: fixed two build errors, one missing include and one !CONFIG_OF failure]
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: dts: add node for PL330 MDMA1 controller for exynos4
Bartlomiej Zolnierkiewicz [Sat, 24 Nov 2012 02:12:50 +0000 (11:12 +0900)]
ARM: dts: add node for PL330 MDMA1 controller for exynos4

Add missing PL330 MDMA1 controller node to the device tree (DT).

[ Currently there is no problem with using 'non-secure' mdma1 address
  instead of 'secure' one on revision 0 of Exynos4210 SOC (as used by
  Universal C210 board) as this SOC revision is unsupported by DT. ]

Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412
Tomasz Figa [Sat, 24 Nov 2012 02:13:48 +0000 (11:13 +0900)]
ARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412

Exynos4412 uses different information register for each core. This
patch adjusts the bring-up code to take that into account.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoARM: EXYNOS: add UART3 to DEBUG_LL ports
Olof Johansson [Thu, 22 Nov 2012 05:24:04 +0000 (14:24 +0900)]
ARM: EXYNOS: add UART3 to DEBUG_LL ports

Add support for using UART3 for DEBUG_LL on exynos.

[dianders: added depend on ARCH_EXYNOS.]

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoARM: S3C24XX: Add clkdev entry for camif-upll clock
Sylwester Nawrocki [Thu, 22 Nov 2012 05:35:43 +0000 (14:35 +0900)]
ARM: S3C24XX: Add clkdev entry for camif-upll clock

The s3c-camif driver uses "camera" clock conn_id for the "camif-upll"
(s3c244x) and "camera" (s3c64xx) platform clock. By adding this new
clkdev entry the platform differences are isolated from the driver.

Signed-off-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers
Sylwester Nawrocki [Thu, 22 Nov 2012 05:29:18 +0000 (14:29 +0900)]
ARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers

This patch adds default helper functions for the camera port
pin configuration. Whenever pinctrl support for s3c24xx/s3c64xx
SoCs is available these code should be removed and proper pinctrl
API should be used in the CAMIF driver.

Signed-off-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoARM: sunxi: Add missing sun4i.dtsi file
Stefan Roese [Mon, 26 Nov 2012 14:46:12 +0000 (15:46 +0100)]
ARM: sunxi: Add missing sun4i.dtsi file

Patch f055f1f6 [ARM: sunxi: Add sun4i and cubieboard support] missed
this sun4i.dtsi include file. This patch finally brings it upstream
enabling support for sun4i boards.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoMerge branch 'next/soc-exynos5440' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Mon, 26 Nov 2012 08:22:48 +0000 (00:22 -0800)]
Merge branch 'next/soc-exynos5440' of git://git./linux/kernel/git/kgene/linux-samsung into next/soc

From Kukjin Kim:
This is adding support for exynos5440, including Quad ARM Cortex-A15
cores and its reference board SSDK5440.

Note, at this moment, just enabled minimal system part for initial kernel
boot and pinctrl driver.

* 'next/soc-exynos5440' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
  ARM: dts: Add pin controller node for Samsung EXYNOS5440 SoC
  pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC
  ARM: dts: add initial dts file for EXYNOS5440, SSDK5440
  ARM: EXYNOS: add support for EXYNOS5440 SoC

Add/add conflict in arch/arm/boot/dts/Makefile.

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge tag 'imx-soc-1' of git://git.pengutronix.de/git/imx/linux-2.6 into next/soc
Olof Johansson [Mon, 26 Nov 2012 07:34:36 +0000 (23:34 -0800)]
Merge tag 'imx-soc-1' of git://git.pengutronix.de/git/imx/linux-2.6 into next/soc

From Sascha Hauer:
ARM i.MX SoC updates for v3.8

* tag 'imx-soc-1' of git://git.pengutronix.de/git/imx/linux-2.6:
  ARM i.MX6: remove gate_mask from pllv3
  ARM i.MX6: Fix ethernet PLL clocks
  ARM i.MX6: rename PLLs according to datasheet
  ARM i.MX6: Add pwm support
  ARM i.MX51: Add pwm support
  ARM i.MX53: Add pwm support
  ARM: mx5: Replace clk_register_clkdev with clock DT lookup

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agopinctrl: samsung: Do not initialise statics to 0
Sachin Kamat [Sat, 24 Nov 2012 02:20:51 +0000 (11:20 +0900)]
pinctrl: samsung: Do not initialise statics to 0

Static variables are initialised to 0 by GCC.
Fixes the following checkpatch error:
ERROR: do not initialise statics to 0 or NULL
FILE: pinctrl/pinctrl-samsung.c:50:
static unsigned int pin_base = 0;

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoMerge branch 'depends/gpio-devel' into next/soc
Olof Johansson [Fri, 23 Nov 2012 16:25:39 +0000 (08:25 -0800)]
Merge branch 'depends/gpio-devel' into next/soc

Pulling in a newer version of the depend branch from the gpio tree,
since there was some randconfig breakage introduced at the version we
had, and we want to keep those things as bisectable as possible. It's
not bad enough to warrant a rebase though, so there'll be a window of
exposure to this.

* depends/gpio-devel:
  gpio: SPEAr: add spi chipselect control driver
  gpio: gpio-max710x: Support device tree probing
  gpio: twl4030: Use only TWL4030_MODULE_LED for LED configuration
  gpio: tegra: read output value when gpio is set in direction_out
  gpio: pca953x: Add compatible strings to gpio-pca953x driver
  gpio: pca953x: Register an IRQ domain
  gpio: mvebu: Set free callback for gpio_chip
  gpio: tegra: Drop exporting static functions
  gpio: tegra: Staticize non-exported symbols
  gpio: tegra: fix suspend/resume apis
  gpio-pch: Set parent dev for gpio chip
  gpio: em: Fix build errors

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM i.MX6: remove gate_mask from pllv3
Sascha Hauer [Thu, 22 Nov 2012 09:18:41 +0000 (10:18 +0100)]
ARM i.MX6: remove gate_mask from pllv3

Now that the additional enable bits in the enet PLL are handled
as gates, the gate_mask is identical for all plls. Remove the
gate_mask from the code and use the BM_PLL_ENABLE bit for
enabling/disabling the PLL.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
11 years agoARM i.MX6: Fix ethernet PLL clocks
Sascha Hauer [Wed, 21 Nov 2012 13:42:31 +0000 (14:42 +0100)]
ARM i.MX6: Fix ethernet PLL clocks

In current code the ethernet PLL is not handled correctly. The PLL runs at 500MHz
and has different outputs. Only the enet reference clock is implemented. This
patch changes the PLL so that it outputs 500MHz and adds the additional outputs
as dividers. This now matches the datasheet which says:

> This PLL synthesizes a low jitter clock from 24 MHz reference clock.
> The PLL outputs a 500 MHz clock. The reference clocks generated by this PLL are:
>  • Ref_PCIe = 125 MHz
>  • Ref_SATA = 100 MHz
>  • Ref_ethernet, which is configurable based on the PLL_ENET[1:0] register field.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
11 years agoARM i.MX6: rename PLLs according to datasheet
Sascha Hauer [Thu, 22 Nov 2012 09:05:13 +0000 (10:05 +0100)]
ARM i.MX6: rename PLLs according to datasheet

In recent reference manuals the PLLs were renumbered. PLL8 now is
PLL6 and vice versa. Change the code according to the reference
manual to avoid confusion.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
11 years agoARM i.MX6: Add pwm support
Sascha Hauer [Wed, 21 Nov 2012 11:18:28 +0000 (12:18 +0100)]
ARM i.MX6: Add pwm support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
11 years agoARM i.MX51: Add pwm support
Sascha Hauer [Sun, 18 Nov 2012 23:57:08 +0000 (00:57 +0100)]
ARM i.MX51: Add pwm support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
11 years agoARM i.MX53: Add pwm support
Sascha Hauer [Wed, 4 Jul 2012 10:30:37 +0000 (12:30 +0200)]
ARM i.MX53: Add pwm support

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
11 years agoARM: mx5: Replace clk_register_clkdev with clock DT lookup
Fabio Estevam [Wed, 21 Nov 2012 15:43:05 +0000 (13:43 -0200)]
ARM: mx5: Replace clk_register_clkdev with clock DT lookup

Similarly as it was done for mx6q, use a DT lookup in order to make maintainance
task for the clock devices easier.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
11 years agoARM: dts: Add pin controller node for Samsung EXYNOS5440 SoC
Thomas Abraham [Wed, 24 Oct 2012 08:18:52 +0000 (17:18 +0900)]
ARM: dts: Add pin controller node for Samsung EXYNOS5440 SoC

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agopinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC
Thomas Abraham [Wed, 10 Oct 2012 00:41:12 +0000 (09:41 +0900)]
pinctrl: exynos5440: add pinctrl driver for Samsung EXYNOS5440 SoC

Add a new pinctrl driver for Samsung EXYNOS5440 SoC. The pin controller
module in EXYNOS5440 is different from the pin controller found on other
Samsung SoC. Hence, the pin controller driver for EXYNOS5440 SoC is
independent of the Samsung pinctrl framework.

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoARM: dts: add initial dts file for EXYNOS5440, SSDK5440
Kukjin Kim [Wed, 24 Oct 2012 04:41:15 +0000 (13:41 +0900)]
ARM: dts: add initial dts file for EXYNOS5440, SSDK5440

This patch adds initial dts file for EXYNOS5440 SoC and adds the
dts file for SSDK5440 board which is a kind of reference board.
More properties will be added later.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoARM: EXYNOS: add support for EXYNOS5440 SoC
Kukjin Kim [Thu, 15 Nov 2012 06:48:56 +0000 (15:48 +0900)]
ARM: EXYNOS: add support for EXYNOS5440 SoC

This patch adds support for EXYNOS5440 SoC which is including
ARM Cortex-A15 Quad cores.

Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoMerge branch 'sunxi/soc2' into next/soc
Olof Johansson [Wed, 21 Nov 2012 18:52:05 +0000 (10:52 -0800)]
Merge branch 'sunxi/soc2' into next/soc

From Maxime Ripard:

Here is a pull request to add the support for Allwinner A10 SoCs.

* sunxi/soc2:
  ARM: sunxi: Add sunxi restart function via onchip watchdog
  ARM: sunxi: Add sun4i and cubieboard support
  ARM: sunxi: Add earlyprintk support for UART0 (sun4i)
  ARM: sunxi: Restructure sunxi dts/dtsi files

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge branch 'samsung/pinctrl' into next/soc
Olof Johansson [Wed, 21 Nov 2012 18:18:54 +0000 (10:18 -0800)]
Merge branch 'samsung/pinctrl' into next/soc

From Kukjin Kim:
Here is Samsung DT for v3.8 and this is including DT for EXYNOS4X12
SoC, SMDK4412 board, pinctrl for exynos4x12, TMU, MFC, SATA and SATA
PHY.

As I commented on [4/7], this branch merged pinctrl/samsung to support
pinctrl for exynos4x12 without useless merge conflicts.

* samsung/pinctrl:
  pinctrl: samsung: Update error check for unsigned variables
  pinctrl: samsung: Add support for EXYNOS4X12
  Documentation: Update samsung-pinctrl device tree bindings documentation
  pinctrl: samsung: Add GPIO to IRQ translation
  pinctrl: exynos: Set pin function to EINT in irq_set_type of wake-up EINT
  pinctrl: samsung: Use per-bank IRQ domain for wake-up interrupts
  pinctrl: samsung: Use one GPIO chip per pin bank
  pinctrl: exynos: Use one IRQ domain per pin bank
  pinctrl: samsung: Include bank-specific eint offset in bank struct
  pinctrl: samsung: Hold pointer to driver data in bank struct
  pinctrl: samsung: Match pin banks with their device nodes
  ARM: dts: exynos4210-pinctrl: Add nodes for pin banks
  pinctrl: samsung: Distinguish between pin group and bank nodes
  pinctrl: samsung: Remove static pin enumerations
  pinctrl: samsung: Assing pin numbers dynamically
  pinctrl: samsung: Do not pass gpio_chip to pin_to_reg_bank
  pinctrl: samsung: Detect and handle unsupported configuration types

11 years agoMerge branch 'clps711x/soc2' into next/soc
Olof Johansson [Wed, 21 Nov 2012 17:58:28 +0000 (09:58 -0800)]
Merge branch 'clps711x/soc2' into next/soc

From Alexander Shiyan:

The main direction of this patchset - approaching the platform to the
possibility of using configurations with multiple platforms in a single
kernel. Added support of the majority of the necessary kernel symbol.
Also part of the driver code used only for the platform was moved to the
board code and converted to the use of standard drivers.

* clps711x/soc2:
  MAINTAINERS: Add ARM CLPS711X entry
  ARM: clps711x: Update defconfig due latest changes and new kernel symbols
  ARM: clps711x: Rename board files to match functionality
  ARM: clps711x: edb7211: Add support for NOR-Flash
  ARM: clps711x: Moving backlight controls of framebuffer driver to the board
  ARM: clps711x: p720t: Special driver for handling NAND memory is removed
  ARM: clps711x: Moving power management of framebuffer driver to the board
  ARM: clps711x: autcpu12: Special driver for handling NAND memory is removed
  ARM: clps711x: Unused empty "ACK" calls for IRQ-chips removed
  ARM: clps711x: Add FIQ interrupt handling
  ARM: clps711x: Implement usage "MULTI_IRQ_HANDLER" kernel option for a platform
  ARM: clps711x: Implement usage "SPARSE_IRQ" kernel option for a platform
  ARM: clps711x: cdb89712: Special driver for handling memory is removed
  ARM: clps711x: Always select AUTO_ZRELADDR for a platform
  ARM: clps711x: p720t: Unneeded inclusion of head-sa1100.S removed
  ARM: clps711x: Transform clps711x-framebuffer to platform driver and use it
  ARM: clps711x: p720t: Using "leds-gpio" driver for LED control
  ARM: clps711x: Using platform_driver for ethernet device

11 years agoMAINTAINERS: Add ARM CLPS711X entry
Alexander Shiyan [Sat, 17 Nov 2012 13:57:24 +0000 (17:57 +0400)]
MAINTAINERS: Add ARM CLPS711X entry

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Update defconfig due latest changes and new kernel symbols
Alexander Shiyan [Sat, 17 Nov 2012 13:57:23 +0000 (17:57 +0400)]
ARM: clps711x: Update defconfig due latest changes and new kernel symbols

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Rename board files to match functionality
Alexander Shiyan [Sat, 17 Nov 2012 13:57:22 +0000 (17:57 +0400)]
ARM: clps711x: Rename board files to match functionality

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: edb7211: Add support for NOR-Flash
Alexander Shiyan [Sat, 17 Nov 2012 13:57:21 +0000 (17:57 +0400)]
ARM: clps711x: edb7211: Add support for NOR-Flash

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Moving backlight controls of framebuffer driver to the board
Alexander Shiyan [Sat, 17 Nov 2012 13:57:20 +0000 (17:57 +0400)]
ARM: clps711x: Moving backlight controls of framebuffer driver to the board

This patch moves the backlight controls for clps711x-framebuffer driver
to the board code. To control we use "generic-bl" driver.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
[olof: fixed space/tab whitespace in drivers/video/clps711xfb.c]
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: p720t: Special driver for handling NAND memory is removed
Alexander Shiyan [Sat, 17 Nov 2012 13:57:19 +0000 (17:57 +0400)]
ARM: clps711x: p720t: Special driver for handling NAND memory is removed

This patch provide migration to using "gpio-nand" driver instead of using
special driver for handling NAND memory.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Moving power management of framebuffer driver to the board
Alexander Shiyan [Sat, 17 Nov 2012 13:57:18 +0000 (17:57 +0400)]
ARM: clps711x: Moving power management of framebuffer driver to the board

This patch moves the power management for clps711x-framebuffer driver
to the board code. To control we use "platform-lcd" driver.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: autcpu12: Special driver for handling NAND memory is removed
Alexander Shiyan [Sat, 17 Nov 2012 13:57:17 +0000 (17:57 +0400)]
ARM: clps711x: autcpu12: Special driver for handling NAND memory is removed

This patch provide migration to using "gpio-nand" and "basic-mmio-gpio"
drivers instead of using special driver for handling NAND memory.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Unused empty "ACK" calls for IRQ-chips removed
Alexander Shiyan [Sat, 17 Nov 2012 13:57:16 +0000 (17:57 +0400)]
ARM: clps711x: Unused empty "ACK" calls for IRQ-chips removed

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Add FIQ interrupt handling
Alexander Shiyan [Sat, 17 Nov 2012 13:57:15 +0000 (17:57 +0400)]
ARM: clps711x: Add FIQ interrupt handling

CLPS711X-target CPU can have a several FIQ interrupts. With this patch
we adds handling for a one which will be used for ALSA PCM later.
Since FIQ have a separate handler we only add "mask" and "unmask" calls
which will used for enable/disable_irq functions.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Implement usage "MULTI_IRQ_HANDLER" kernel option for a platform
Alexander Shiyan [Sat, 17 Nov 2012 13:57:14 +0000 (17:57 +0400)]
ARM: clps711x: Implement usage "MULTI_IRQ_HANDLER" kernel option for a platform

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Implement usage "SPARSE_IRQ" kernel option for a platform
Alexander Shiyan [Sat, 17 Nov 2012 13:57:13 +0000 (17:57 +0400)]
ARM: clps711x: Implement usage "SPARSE_IRQ" kernel option for a platform

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: cdb89712: Special driver for handling memory is removed
Alexander Shiyan [Sat, 17 Nov 2012 13:57:12 +0000 (17:57 +0400)]
ARM: clps711x: cdb89712: Special driver for handling memory is removed

This patch provide migration to using "physmap-flash" and "mtd-ram"
drivers instead of using special driver for handling memory.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Always select AUTO_ZRELADDR for a platform
Alexander Shiyan [Sat, 17 Nov 2012 13:57:11 +0000 (17:57 +0400)]
ARM: clps711x: Always select AUTO_ZRELADDR for a platform

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge branch 'depends/gpio-devel' into next/soc
Olof Johansson [Wed, 21 Nov 2012 17:39:13 +0000 (09:39 -0800)]
Merge branch 'depends/gpio-devel' into next/soc

This is required for some of the clps711x series, so we're bringing in
the dependency explicitly.

By Linus Walleij (5) and others
via Linus Walleij
* depends/gpio-devel:
  GPIO: clps711x: use platform_device_unregister in gpio_clps711x_init()
  gpio/tc3589x: convert to use the simple irqdomain
  gpio/em: convert to linear IRQ domain
  gpio/mvebu: convert to use irq_domain_add_simple()
  gpio/tegra: convert to use linear irqdomain
  gpiolib: unlock on error in gpio_export()
  gpiolib: add gpio get direction callback support
  GPIO: clps711x: Fix direction logic for PORTD
  GPIO: clps711x: Fix return value for gpio_clps711x_get
  gpiolib: Refactor gpio_export
  GPIO: vt8500: Add extended gpio bank for WM8505/WM8650
  gpio: clps711x: delete local <mach/gpio.h> header
  GPIO: Add support for GPIO on CLPS711X-target platform
  DA9055 GPIO driver
  gpio/gpio-omap: Use existing pointer to struct device
  gpio/gpio-pl061: Covert to use devm_* functions

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge tag 'highbank-cpuidle' of git://sources.calxeda.com/kernel/linux into next/soc
Olof Johansson [Wed, 21 Nov 2012 09:16:01 +0000 (01:16 -0800)]
Merge tag 'highbank-cpuidle' of git://sources.calxeda.com/kernel/linux into next/soc

From Rob Herring:
Add cpuidle driver support for Calxeda Highbank SOC.

* tag 'highbank-cpuidle' of git://sources.calxeda.com/kernel/linux:
  cpuidle: add Calxeda SOC idle support

11 years agoMerge tag 'highbank-debugll-cleanup' of git://sources.calxeda.com/kernel/linux into...
Olof Johansson [Wed, 21 Nov 2012 09:12:49 +0000 (01:12 -0800)]
Merge tag 'highbank-debugll-cleanup' of git://sources.calxeda.com/kernel/linux into next/soc

From Rob Herring:
Use common debug_ll_init function and remove the static mapping code
from mach-highbank.

* tag 'highbank-debugll-cleanup' of git://sources.calxeda.com/kernel/linux:
  ARM: highbank: use common debug_ll_io_init
  ARM: implement debug_ll_io_init()

11 years agoMerge branch 'vexpress-clk-soc' of git://git.linaro.org/people/pawelmoll/linux into...
Olof Johansson [Wed, 21 Nov 2012 09:06:16 +0000 (01:06 -0800)]
Merge branch 'vexpress-clk-soc' of git://git.linaro.org/people/pawelmoll/linux into next/soc

From Pawel Moll:
* 'vexpress-clk-soc' of git://git.linaro.org/people/pawelmoll/linux:
  ARM: vexpress: Remove motherboard dependencies in the DTS files
  ARM: vexpress: Start using new Versatile Express infrastructure
  ARM: vexpress: Add config bus components and clocks to DTs
  mfd: Versatile Express system registers driver
  mfd: Versatile Express config infrastructure

11 years agoMerge branch 'depends/clk' into next/soc
Olof Johansson [Wed, 21 Nov 2012 09:06:05 +0000 (01:06 -0800)]
Merge branch 'depends/clk' into next/soc

From Mike Turquette:
* depends/clk:
  clk: Common clocks implementation for Versatile Express
  clk: Versatile Express clock generators ("osc") driver
  CLK: clk-twl6040: Initial clock driver for OMAP4+ McPDM fclk clock
  clk: fix return value check in sirfsoc_of_clk_init()
  clk: fix return value check in of_fixed_clk_setup()
  clk: ux500: Update sdmmc clock to 100MHz for u8500
  clk: ux500: Support prcmu ape opp voltage clock
  mfd: dbx500: Export prmcu_request_ape_opp_100_voltage
  clk: Don't return negative numbers for unsigned values with !clk
  clk: Fix documentation typos
  clk: Document .is_enabled op
  clk: SPEAr: Vco-pll: Fix compilation warning

11 years agoMerge tag 'bcm2835-for-3.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel...
Olof Johansson [Wed, 21 Nov 2012 08:50:07 +0000 (00:50 -0800)]
Merge tag 'bcm2835-for-3.8-defconfig' of git://git./linux/kernel/git/swarren/linux-rpi into next/soc

From Stephen Warren:
ARM: bcm2835: defconfig updates

procfs and sysfs are enabled in bcm2835_defconfig.

* tag 'bcm2835-for-3.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi:
  ARM: bcm2835: enable procfs and sysfs in defconfig

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge tag 'bcm2835-for-3.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Wed, 21 Nov 2012 08:48:30 +0000 (00:48 -0800)]
Merge tag 'bcm2835-for-3.8-soc' of git://git./linux/kernel/git/swarren/linux-rpi into next/soc

From Stephen Warren:
ARM: bcm2835: core SoC enhancements

A machine restart/reboot implementation is added. The GPIO/pinmux
controller is instantiated, and dummy gpio.h added.

* tag 'bcm2835-for-3.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-rpi:
  ARM: bcm2835: enable GPIO/pinctrl
  ARM: bcm2835: implement machine restart hook

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge tag 'tegra-for-3.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel...
Olof Johansson [Wed, 21 Nov 2012 08:32:18 +0000 (00:32 -0800)]
Merge tag 'tegra-for-3.8-defconfig' of git://git./linux/kernel/git/swarren/linux-tegra into next/soc

From Stephen Warren:
ARM: tegra: defconfig update

Many new features are enabled in tegra_defconfig:

* BRCMFMAC: wlan driver, enable as module.
* MTD, MTD_CHAR, MTD_M25P80, SPI_TEGRA20_SLINK, CONFIG_SPI_TEGRA20_SFLASH
  to enable serial flash on Cardhu and TrimSlice.
* PWM/backlight features for use with tegradrm.
* tegradrm; Tegra's new display driver.
* CMA, so that tegradrm can allocate large buffers.
* SquashFS, which is used as the root filesystem on boards based on
  the Tamonten processor module.

* tag 'tegra-for-3.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
  ARM: tegra: defconfig updates

11 years agoMerge tag 'tegra-for-3.8-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Wed, 21 Nov 2012 08:29:02 +0000 (00:29 -0800)]
Merge tag 'tegra-for-3.8-cpuidle' of git://git./linux/kernel/git/swarren/linux-tegra into next/soc

From Stephen Warren:
ARM: tegra: cpuidle enhancements

A cpuidle state "LP2" is added, which power-gates the CPUs. Support for
CPUs 1..n is essentially complete, although support for CPU0 could
benefit from future use of coupled-cpuidle or similar techniques.

A couple of very minor cleanups to cpuidle were included too.

This pull request is based on tegra-for-3.8-soc.

* tag 'tegra-for-3.8-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
  ARM: tegra: retain L2 content over CPU suspend/resume
  ARM: tegra30: cpuidle: add powered-down state for CPU0
  ARM: tegra30: flowctrl: add cpu_suspend_exter/exit function
  ARM: tegra30: clocks: add CPU low-power function into tegra_cpu_car_ops
  ARM: tegra30: common: enable csite clock
  ARM: tegra30: cpuidle: add powered-down state for secondary CPUs
  ARM: tegra: cpuidle: add CPU resume function
  ARM: tegra: cpuidle: separate cpuidle driver for different chips
  ARM: tegra: rename the file of "sleep-tXX" to "sleep-tegraXX"
  ARM: tegra: cpuidle: replace LP3 with ARM_CPUIDLE_WFI_STATE

11 years agoMerge tag 'tegra-for-3.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarre...
Olof Johansson [Wed, 21 Nov 2012 08:21:56 +0000 (00:21 -0800)]
Merge tag 'tegra-for-3.8-soc' of git://git./linux/kernel/git/swarren/linux-tegra into next/soc

From Stephen Warren:
ARM: tegra: core SoC code enhancements

Various small clock initialization table and driver changes to support
WiFi modules, SPI controllers, and host1x (graphics/display hardware).

Various AHB/APB-related clocks were added to the Tegra30 clock driver.

The level 2 cache initialization is now driven by data from device tree,
and the cache configuration tweaked.

AUXDATA is added to support SPI controllers and host1x.

Code to decode Tegra's "speedo" process identification fuses is added.

This pull request is based on tegra-for-3.8-cleanup.

* tag 'tegra-for-3.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (26 commits)
  ARM: tegra: Add Tegra30 host1x clock support
  ARM: tegra: Add AUXDATA for Tegra30 host1x
  ARM: tegra: Add Tegra20 host1x clock support
  ARM: tegra: Add AUXDATA for Tegra20 host1x
  ARM: tegra: Tegra30 speedo-based process identification
  ARM: tegra: Add speedo-based process identification
  ARM: tegra: flexible spare fuse read function
  ARM: tegra: Implement 6395/1 for Tegra
  ARM: tegra: Add OF_DEV_AUXDATA for sflash driver in board dt
  ARM: tegra: enable data prefetch on L2
  ARM: tegra: Add OF_DEV_AUXDATA for SLINK driver in board dt
  ARM: tegra: common: using OF api for L2 cache init
  ARM: tegra: dt: add L2 cache controller
  ARM: tegra30: clocks: add AHB and APB clocks
  ARM: tegra: set up wlan clocks for tegra dt
  ARM: tegra: move irammap.h to mach-tegra
  ARM: tegra: move iomap.h to mach-tegra
  ARM: tegra: remove <mach/dma.h>
  ARM: tegra: move tegra-ahb.h out of arch/arm/mach-tegra/
  ARM: tegra: remove unnecessary includes of <mach/*.h>
  ...

11 years agoARM: sunxi: Add sunxi restart function via onchip watchdog
Maxime Ripard [Mon, 19 Nov 2012 17:57:08 +0000 (18:57 +0100)]
ARM: sunxi: Add sunxi restart function via onchip watchdog

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoARM: clps711x: p720t: Unneeded inclusion of head-sa1100.S removed
Alexander Shiyan [Sat, 17 Nov 2012 13:57:10 +0000 (17:57 +0400)]
ARM: clps711x: p720t: Unneeded inclusion of head-sa1100.S removed

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Transform clps711x-framebuffer to platform driver and use it
Alexander Shiyan [Sat, 17 Nov 2012 13:57:09 +0000 (17:57 +0400)]
ARM: clps711x: Transform clps711x-framebuffer to platform driver and use it

clps711x-framebuffer driver needs to be updated and this is a first step
to make driver better. With this patch we are convert clps711x-framebuffer
to platform device and load this driver from board code.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: p720t: Using "leds-gpio" driver for LED control
Alexander Shiyan [Sat, 17 Nov 2012 13:57:08 +0000 (17:57 +0400)]
ARM: clps711x: p720t: Using "leds-gpio" driver for LED control

Instead of manually create LED class device, we will use "leds-gpio"
driver for LED control.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: clps711x: Using platform_driver for ethernet device
Alexander Shiyan [Sat, 17 Nov 2012 13:57:07 +0000 (17:57 +0400)]
ARM: clps711x: Using platform_driver for ethernet device

This patch removes static mappings for ethernet devices. Now we will use
platform_driver for ethernet devices.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge branch 'clps711x/soc' into clps711x/soc2
Olof Johansson [Wed, 21 Nov 2012 06:21:32 +0000 (22:21 -0800)]
Merge branch 'clps711x/soc' into clps711x/soc2

Conflicts:
arch/arm/Kconfig

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge tag 'tags/sunxi-support-for-3.8' of git://github.com/mripard/linux into next/soc
Olof Johansson [Wed, 21 Nov 2012 06:14:59 +0000 (22:14 -0800)]
Merge tag 'tags/sunxi-support-for-3.8' of git://github.com/mripard/linux into next/soc

From Maxime Ripard:
Allwinner SoC support for 3.8

* tag 'tags/sunxi-support-for-3.8' of git://github.com/mripard/linux:
  ARM: sunxi: Add entry to MAINTAINERS
  ARM: sunxi: Add device tree for the A13 and the Olinuxino board
  ARM: sunxi: Add earlyprintk support
  ARM: sunxi: Add basic support for Allwinner A1x SoCs
  irqchip: sunxi: Add irq controller driver
  clocksource: sunxi: Add Allwinner A1X Timer Driver
  clk: sunxi: Add dummy fixed rate clock for Allwinner A1X SoCs

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoARM: sunxi: Add sun4i and cubieboard support
Stefan Roese [Mon, 19 Nov 2012 11:09:42 +0000 (12:09 +0100)]
ARM: sunxi: Add sun4i and cubieboard support

This patch adds support for the Cubieboard based on the Allwinner
A10/sun4i SoC. Currently only UART is supported. Other devices
will eventually follow.

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoARM: sunxi: Add earlyprintk support for UART0 (sun4i)
Stefan Roese [Mon, 19 Nov 2012 11:09:41 +0000 (12:09 +0100)]
ARM: sunxi: Add earlyprintk support for UART0 (sun4i)

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoARM: sunxi: Restructure sunxi dts/dtsi files
Stefan Roese [Mon, 19 Nov 2012 11:09:40 +0000 (12:09 +0100)]
ARM: sunxi: Restructure sunxi dts/dtsi files

For the new sun4i/Cubieboard (A10) support, lets re-strucure the
sun5i dts files to make it more generic. Those are the new
dts/dtsi files:

sunxi.dtsi - Devices common to all Allwinner sunXi SoC's
sun4i.dtsi - sun4i Devices, will include sunxi.dtsi
sun5i.dtsi - sun5i Devices, will include sunxi.dtsi
board.dts - will include either sun4i.dtsi or sun5i.dtsi

Additionally the "duart" label in the olinuxino.dts is changed to
"uart1".

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoAdd support for generic BCM SoC chipsets
Christian Daudt [Mon, 19 Nov 2012 17:46:10 +0000 (09:46 -0800)]
Add support for generic BCM SoC chipsets

In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM11130/11140/11351/28145/28155) family of dual A9 mobile
SoC cores.
This code is just the skeleton code for get the machine upstreamed. It
has been made MULTIPLATFORM compatible.
Next steps
----------
Upstream a basic set of drivers - sufficient for a console boot to
ramdisk. These will includer timer, gpio, i2c drivers.
After this basic set, we will proceed with a more comprehensive set
of drivers for the 281XX SoC family.

v2 patch mods
--------
 - Remove l2x0_of_init call as there were problems with the code.
   A separate patch will be submitted with cache init code
 - Rename capri files and refs to bcm281xx-based names
 - Add bcm281xx binding doc
 - various misc cleanups

v3 patch mods
-------------
 - Remove extra #include lines
 - Remove remaining references to capri
 - dt uart chipset string added
 - cleaned up chip # references

v4 patch mods
-------------
 - swap order of compatible definitions for uart
 - fix typo

v5 patch mods
-------------
 - Rename bcm281xx to bcm11351 in dts+code,
   leaving references to bcm281xx only in help+comments.

v6 patch mods
-------------
 - fix typo in uart 'compatible' string

Signed-off-by: Christian Daudt <csd@broadcom.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agoMerge tag 'davinci-for-v3.8/soc' of git://gitorious.org/linux-davinci/linux-davinci...
Olof Johansson [Tue, 20 Nov 2012 06:13:24 +0000 (22:13 -0800)]
Merge tag 'davinci-for-v3.8/soc' of git://gitorious.org/linux-davinci/linux-davinci into next/soc

From Sekhar Nori:

SoC updates for DaVinci. Changes include:

1) Support for PRUSS UIO driver for DA850 SoC
   and related SRAM support updates.
2) Prepration for common clock migration
3) Serial support related changes for DA850 DT boot

* tag 'davinci-for-v3.8/soc' of git://gitorious.org/linux-davinci/linux-davinci:
  ARM: davinci: da8xx: add DA850 PRUSS support
  ARM: davinci: add platform hook to fetch the SRAM pool
  ARM: davinci: da850: changed SRAM allocator to shared ram.
  ARM: davinci: sram: switch from iotable to ioremapped regions
  uio: uio_pruss: replace private SRAM API with genalloc
  ARM: davinci: serial: provide API to initialze UART clocks
  ARM: davinci: convert platform code to use clk_prepare/clk_unprepare

Signed-off-by: Olof Johansson <olof@lixom.net>
11 years agopinctrl: samsung: Update error check for unsigned variables
Tushar Behera [Mon, 19 Nov 2012 00:45:19 +0000 (09:45 +0900)]
pinctrl: samsung: Update error check for unsigned variables

Checking '< 0' for unsigned variables always returns false. For error
codes, use IS_ERR_VALUE() instead.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agopinctrl: samsung: Add support for EXYNOS4X12
Tomasz Figa [Tue, 6 Nov 2012 23:44:59 +0000 (08:44 +0900)]
pinctrl: samsung: Add support for EXYNOS4X12

This patch extends the driver with any necessary SoC-specific
definitions to support EXYNOS4X12 SoCs.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
11 years agoMerge remote-tracking branch 'pinctrl/samsung' into next/pinctrl-samsung
Kukjin Kim [Mon, 19 Nov 2012 01:00:41 +0000 (10:00 +0900)]
Merge remote-tracking branch 'pinctrl/samsung' into next/pinctrl-samsung

11 years agogpio: SPEAr: add spi chipselect control driver
Shiraz Hashim [Fri, 16 Nov 2012 05:15:25 +0000 (10:45 +0530)]
gpio: SPEAr: add spi chipselect control driver

SPEAr platform provides a provision to control chipselects of ARM PL022
Prime Cell spi controller through its system registers, which otherwise
remains under PL022 control which some protocols do not want.

This commit intends to provide the spi chipselect control in software over
gpiolib interface. spi chip drivers can use the exported gpiolib interface to
define their chipselect through DT or platform data.

Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Shiraz Hashim <shiraz.hashim@st.com>
Reviewed-by: Vipin Kumar <vipin.kumar@st.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: gpio-max710x: Support device tree probing
Roland Stigge [Thu, 15 Nov 2012 13:59:40 +0000 (14:59 +0100)]
gpio: gpio-max710x: Support device tree probing

For probing via device tree, we need to support the case without platform_data.
In this case, chip.base is set to -1 for automatic numbering.

Signed-off-by: Roland Stigge <stigge@antcom.de>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: twl4030: Use only TWL4030_MODULE_LED for LED configuration
Peter Ujfalusi [Tue, 13 Nov 2012 09:35:13 +0000 (10:35 +0100)]
gpio: twl4030: Use only TWL4030_MODULE_LED for LED configuration

Avoid using the TWL4030_MODULE_PWMA/B as module ID. The LEDEN, PWMA ON/OFF
and PWMB ON/OFF registers are in a continuous range starting from LED base.
This is going to be helpful for further cleanup in the twl stack.

No functional changes.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: tegra: read output value when gpio is set in direction_out
Laxman Dewangan [Fri, 9 Nov 2012 06:04:20 +0000 (11:34 +0530)]
gpio: tegra: read output value when gpio is set in direction_out

Read the output value when gpio is set for the output mode for
gpio_get_value(). Reading input value in direction out does not
give correct value.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: pca953x: Add compatible strings to gpio-pca953x driver
Maxime Ripard [Thu, 8 Nov 2012 17:01:52 +0000 (18:01 +0100)]
gpio: pca953x: Add compatible strings to gpio-pca953x driver

Even though the device tree binding code was already written, the
compatible strings were not yet in the driver.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agogpio: pca953x: Register an IRQ domain
Maxime Ripard [Thu, 8 Nov 2012 17:01:51 +0000 (18:01 +0100)]
gpio: pca953x: Register an IRQ domain

The PCA953x used to register no IRQ domain, which made it impossible to
use it as an interrupt-parent from the device tree.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
11 years agoLinux 3.7-rc6 v3.7-rc6
Linus Torvalds [Sat, 17 Nov 2012 01:42:40 +0000 (17:42 -0800)]
Linux 3.7-rc6

11 years agoMerge git://git.kernel.org/pub/scm/virt/kvm/kvm
Linus Torvalds [Sat, 17 Nov 2012 00:49:10 +0000 (16:49 -0800)]
Merge git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull KVM fix from Marcelo Tosatti:
 "A correction for oops on module init with older Intel hosts."

* git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: x86: Fix invalid secondary exec controls in vmx_cpuid_update()

11 years agoMerge branch 'akpm' (Fixes from Andrew)
Linus Torvalds [Fri, 16 Nov 2012 23:26:38 +0000 (15:26 -0800)]
Merge branch 'akpm' (Fixes from Andrew)

Merge misc fixes from Andrew Morton.

* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (12 patches)
  revert "mm: fix-up zone present pages"
  tmpfs: change final i_blocks BUG to WARNING
  tmpfs: fix shmem_getpage_gfp() VM_BUG_ON
  mm: highmem: don't treat PKMAP_ADDR(LAST_PKMAP) as a highmem address
  mm: revert "mm: vmscan: scale number of pages reclaimed by reclaim/compaction based on failures"
  rapidio: fix kernel-doc warnings
  swapfile: fix name leak in swapoff
  memcg: fix hotplugged memory zone oops
  mips, arc: fix build failure
  memcg: oom: fix totalpages calculation for memory.swappiness==0
  mm: fix build warning for uninitialized value
  mm: add anon_vma_lock to validate_mm()

11 years agorevert "mm: fix-up zone present pages"
Andrew Morton [Fri, 16 Nov 2012 22:15:06 +0000 (14:15 -0800)]
revert "mm: fix-up zone present pages"

Revert commit 7f1290f2f2a4 ("mm: fix-up zone present pages")

That patch tried to fix a issue when calculating zone->present_pages,
but it caused a regression on 32bit systems with HIGHMEM.  With that
change, reset_zone_present_pages() resets all zone->present_pages to
zero, and fixup_zone_present_pages() is called to recalculate
zone->present_pages when the boot allocator frees core memory pages into
buddy allocator.  Because highmem pages are not freed by bootmem
allocator, all highmem zones' present_pages becomes zero.

Various options for improving the situation are being discussed but for
now, let's return to the 3.6 code.

Cc: Jianguo Wu <wujianguo@huawei.com>
Cc: Jiang Liu <jiang.liu@huawei.com>
Cc: Petr Tesarik <ptesarik@suse.cz>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Minchan Kim <minchan.kim@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: David Rientjes <rientjes@google.com>
Tested-by: Chris Clayton <chris2553@googlemail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agotmpfs: change final i_blocks BUG to WARNING
Hugh Dickins [Fri, 16 Nov 2012 22:15:04 +0000 (14:15 -0800)]
tmpfs: change final i_blocks BUG to WARNING

Under a particular load on one machine, I have hit shmem_evict_inode()'s
BUG_ON(inode->i_blocks), enough times to narrow it down to a particular
race between swapout and eviction.

It comes from the "if (freed > 0)" asymmetry in shmem_recalc_inode(),
and the lack of coherent locking between mapping's nrpages and shmem's
swapped count.  There's a window in shmem_writepage(), between lowering
nrpages in shmem_delete_from_page_cache() and then raising swapped
count, when the freed count appears to be +1 when it should be 0, and
then the asymmetry stops it from being corrected with -1 before hitting
the BUG.

One answer is coherent locking: using tree_lock throughout, without
info->lock; reasonable, but the raw_spin_lock in percpu_counter_add() on
used_blocks makes that messier than expected.  Another answer may be a
further effort to eliminate the weird shmem_recalc_inode() altogether,
but previous attempts at that failed.

So far undecided, but for now change the BUG_ON to WARN_ON: in usual
circumstances it remains a useful consistency check.

Signed-off-by: Hugh Dickins <hughd@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agotmpfs: fix shmem_getpage_gfp() VM_BUG_ON
Hugh Dickins [Fri, 16 Nov 2012 22:15:03 +0000 (14:15 -0800)]
tmpfs: fix shmem_getpage_gfp() VM_BUG_ON

Fuzzing with trinity hit the "impossible" VM_BUG_ON(error) (which Fedora
has converted to WARNING) in shmem_getpage_gfp():

  WARNING: at mm/shmem.c:1151 shmem_getpage_gfp+0xa5c/0xa70()
  Pid: 29795, comm: trinity-child4 Not tainted 3.7.0-rc2+ #49
  Call Trace:
    warn_slowpath_common+0x7f/0xc0
    warn_slowpath_null+0x1a/0x20
    shmem_getpage_gfp+0xa5c/0xa70
    shmem_fault+0x4f/0xa0
    __do_fault+0x71/0x5c0
    handle_pte_fault+0x97/0xae0
    handle_mm_fault+0x289/0x350
    __do_page_fault+0x18e/0x530
    do_page_fault+0x2b/0x50
    page_fault+0x28/0x30
    tracesys+0xe1/0xe6

Thanks to Johannes for pointing to truncation: free_swap_and_cache()
only does a trylock on the page, so the page lock we've held since
before confirming swap is not enough to protect against truncation.

What cleanup is needed in this case? Just delete_from_swap_cache(),
which takes care of the memcg uncharge.

Signed-off-by: Hugh Dickins <hughd@google.com>
Reported-by: Dave Jones <davej@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agomm: highmem: don't treat PKMAP_ADDR(LAST_PKMAP) as a highmem address
Will Deacon [Fri, 16 Nov 2012 22:15:00 +0000 (14:15 -0800)]
mm: highmem: don't treat PKMAP_ADDR(LAST_PKMAP) as a highmem address

kmap_to_page returns the corresponding struct page for a virtual address
of an arbitrary mapping.  This works by checking whether the address
falls in the pkmap region and using the pkmap page tables instead of the
linear mapping if appropriate.

Unfortunately, the bounds checking means that PKMAP_ADDR(LAST_PKMAP) is
incorrectly treated as a highmem address and we can end up walking off
the end of pkmap_page_table and subsequently passing junk to pte_page.

This patch fixes the bound check to stay within the pkmap tables.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Cc: Mel Gorman <mgorman@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agomm: revert "mm: vmscan: scale number of pages reclaimed by reclaim/compaction based...
Mel Gorman [Fri, 16 Nov 2012 22:14:59 +0000 (14:14 -0800)]
mm: revert "mm: vmscan: scale number of pages reclaimed by reclaim/compaction based on failures"

Jiri Slaby reported the following:

(It's an effective revert of "mm: vmscan: scale number of pages
reclaimed by reclaim/compaction based on failures".) Given kswapd
had hours of runtime in ps/top output yesterday in the morning
and after the revert it's now 2 minutes in sum for the last 24h,
I would say, it's gone.

The intention of the patch in question was to compensate for the loss of
lumpy reclaim.  Part of the reason lumpy reclaim worked is because it
aggressively reclaimed pages and this patch was meant to be a sane
compromise.

When compaction fails, it gets deferred and both compaction and
reclaim/compaction is deferred avoid excessive reclaim.  However, since
commit c654345924f7 ("mm: remove __GFP_NO_KSWAPD"), kswapd is woken up
each time and continues reclaiming which was not taken into account when
the patch was developed.

Attempts to address the problem ended up just changing the shape of the
problem instead of fixing it.  The release window gets closer and while
a THP allocation failing is not a major problem, kswapd chewing up a lot
of CPU is.

This patch reverts commit 83fde0f22872 ("mm: vmscan: scale number of
pages reclaimed by reclaim/compaction based on failures") and will be
revisited in the future.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Cc: Zdenek Kabelac <zkabelac@redhat.com>
Tested-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Cc: Jiri Slaby <jirislaby@gmail.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Johannes Hirte <johannes.hirte@fem.tu-ilmenau.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agorapidio: fix kernel-doc warnings
Randy Dunlap [Fri, 16 Nov 2012 22:14:56 +0000 (14:14 -0800)]
rapidio: fix kernel-doc warnings

Fix rapidio kernel-doc warnings:

  Warning(drivers/rapidio/rio.c:415): No description found for parameter 'local'
  Warning(drivers/rapidio/rio.c:415): Excess function parameter 'lstart' description in 'rio_map_inb_region'
  Warning(include/linux/rio.h:290): No description found for parameter 'switches'
  Warning(include/linux/rio.h:290): No description found for parameter 'destid_table'

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Matt Porter <mporter@kernel.crashing.org>
Acked-by: Alexandre Bounine <alexandre.bounine@idt.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agoswapfile: fix name leak in swapoff
Xiaotian Feng [Fri, 16 Nov 2012 22:14:55 +0000 (14:14 -0800)]
swapfile: fix name leak in swapoff

There's a name leak introduced by commit 91a27b2a7567 ("vfs: define
struct filename and have getname() return it").  Add the missing
putname.

[akpm@linux-foundation.org: cleanup]
Signed-off-by: Xiaotian Feng <dannyfeng@tencent.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agomemcg: fix hotplugged memory zone oops
Hugh Dickins [Fri, 16 Nov 2012 22:14:54 +0000 (14:14 -0800)]
memcg: fix hotplugged memory zone oops

When MEMCG is configured on (even when it's disabled by boot option),
when adding or removing a page to/from its lru list, the zone pointer
used for stats updates is nowadays taken from the struct lruvec.  (On
many configurations, calculating zone from page is slower.)

But we have no code to update all the lruvecs (per zone, per memcg) when
a memory node is hotadded.  Here's an extract from the oops which
results when running numactl to bind a program to a newly onlined node:

  BUG: unable to handle kernel NULL pointer dereference at 0000000000000f60
  IP:  __mod_zone_page_state+0x9/0x60
  Pid: 1219, comm: numactl Not tainted 3.6.0-rc5+ #180 Bochs Bochs
  Process numactl (pid: 1219, threadinfo ffff880039abc000, task ffff8800383c4ce0)
  Call Trace:
    __pagevec_lru_add_fn+0xdf/0x140
    pagevec_lru_move_fn+0xb1/0x100
    __pagevec_lru_add+0x1c/0x30
    lru_add_drain_cpu+0xa3/0x130
    lru_add_drain+0x2f/0x40
   ...

The natural solution might be to use a memcg callback whenever memory is
hotadded; but that solution has not been scoped out, and it happens that
we do have an easy location at which to update lruvec->zone.  The lruvec
pointer is discovered either by mem_cgroup_zone_lruvec() or by
mem_cgroup_page_lruvec(), and both of those do know the right zone.

So check and set lruvec->zone in those; and remove the inadequate
attempt to set lruvec->zone from lruvec_init(), which is called before
NODE_DATA(node) has been allocated in such cases.

Ah, there was one exceptionr.  For no particularly good reason,
mem_cgroup_force_empty_list() has its own code for deciding lruvec.
Change it to use the standard mem_cgroup_zone_lruvec() and
mem_cgroup_get_lru_size() too.  In fact it was already safe against such
an oops (the lru lists in danger could only be empty), but we're better
proofed against future changes this way.

I've marked this for stable (3.6) since we introduced the problem in 3.5
(now closed to stable); but I have no idea if this is the only fix
needed to get memory hotadd working with memcg in 3.6, and received no
answer when I enquired twice before.

Reported-by: Tang Chen <tangchen@cn.fujitsu.com>
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Konstantin Khlebnikov <khlebnikov@openvz.org>
Cc: Wen Congyang <wency@cn.fujitsu.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agomips, arc: fix build failure
David Rientjes [Fri, 16 Nov 2012 22:14:52 +0000 (14:14 -0800)]
mips, arc: fix build failure

Using a cross-compiler to fix another issue, the following build error
occurred for mips defconfig:

  arch/mips/fw/arc/misc.c: In function 'ArcHalt':
  arch/mips/fw/arc/misc.c:25:2: error: implicit declaration of function 'local_irq_disable'

Fix it up by including irqflags.h.

Signed-off-by: David Rientjes <rientjes@google.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agomemcg: oom: fix totalpages calculation for memory.swappiness==0
Michal Hocko [Fri, 16 Nov 2012 22:14:49 +0000 (14:14 -0800)]
memcg: oom: fix totalpages calculation for memory.swappiness==0

oom_badness() takes a totalpages argument which says how many pages are
available and it uses it as a base for the score calculation.  The value
is calculated by mem_cgroup_get_limit which considers both limit and
total_swap_pages (resp.  memsw portion of it).

This is usually correct but since fe35004fbf9e ("mm: avoid swapping out
with swappiness==0") we do not swap when swappiness is 0 which means
that we cannot really use up all the totalpages pages.  This in turn
confuses oom score calculation if the memcg limit is much smaller than
the available swap because the used memory (capped by the limit) is
negligible comparing to totalpages so the resulting score is too small
if adj!=0 (typically task with CAP_SYS_ADMIN or non zero oom_score_adj).
A wrong process might be selected as result.

The problem can be worked around by checking mem_cgroup_swappiness==0
and not considering swap at all in such a case.

Signed-off-by: Michal Hocko <mhocko@suse.cz>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agomm: fix build warning for uninitialized value
David Rientjes [Fri, 16 Nov 2012 22:14:48 +0000 (14:14 -0800)]
mm: fix build warning for uninitialized value

do_wp_page() sets mmun_called if mmun_start and mmun_end were
initialized and, if so, may call mmu_notifier_invalidate_range_end()
with these values.  This doesn't prevent gcc from emitting a build
warning though:

  mm/memory.c: In function `do_wp_page':
  mm/memory.c:2530: warning: `mmun_start' may be used uninitialized in this function
  mm/memory.c:2531: warning: `mmun_end' may be used uninitialized in this function

It's much easier to initialize the variables to impossible values and do
a simple comparison to determine if they were initialized to remove the
bool entirely.

Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agomm: add anon_vma_lock to validate_mm()
Michel Lespinasse [Fri, 16 Nov 2012 22:14:47 +0000 (14:14 -0800)]
mm: add anon_vma_lock to validate_mm()

Iterating over the vma->anon_vma_chain without anon_vma_lock may cause
NULL ptr deref in anon_vma_interval_tree_verify(), because the node in the
chain might have been removed.

  BUG: unable to handle kernel paging request at fffffffffffffff0
  IP: [<ffffffff8122c29c>] anon_vma_interval_tree_verify+0xc/0xa0
  PGD 4e28067 PUD 4e29067 PMD 0
  Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
  CPU 0
  Pid: 9050, comm: trinity-child64 Tainted: G        W    3.7.0-rc2-next-20121025-sasha-00001-g673f98e-dirty #77
  RIP: 0010: anon_vma_interval_tree_verify+0xc/0xa0
  Process trinity-child64 (pid: 9050, threadinfo ffff880045f80000, task ffff880048eb0000)
  Call Trace:
    validate_mm+0x58/0x1e0
    vma_adjust+0x635/0x6b0
    __split_vma.isra.22+0x161/0x220
    split_vma+0x24/0x30
    sys_madvise+0x5da/0x7b0
    tracesys+0xe1/0xe6
  RIP  anon_vma_interval_tree_verify+0xc/0xa0
  CR2: fffffffffffffff0

Figured out by Bob Liu.

Reported-by: Sasha Levin <sasha.levin@oracle.com>
Cc: Bob Liu <lliubbo@gmail.com>
Signed-off-by: Michel Lespinasse <walken@google.com>
Reviewed-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
11 years agoKVM: x86: Fix invalid secondary exec controls in vmx_cpuid_update()
Takashi Iwai [Fri, 9 Nov 2012 14:20:17 +0000 (15:20 +0100)]
KVM: x86: Fix invalid secondary exec controls in vmx_cpuid_update()

The commit [ad756a16: KVM: VMX: Implement PCID/INVPCID for guests with
EPT] introduced the unconditional access to SECONDARY_VM_EXEC_CONTROL,
and this triggers kernel warnings like below on old CPUs:

    vmwrite error: reg 401e value a0568000 (err 12)
    Pid: 13649, comm: qemu-kvm Not tainted 3.7.0-rc4-test2+ #154
    Call Trace:
     [<ffffffffa0558d86>] vmwrite_error+0x27/0x29 [kvm_intel]
     [<ffffffffa054e8cb>] vmcs_writel+0x1b/0x20 [kvm_intel]
     [<ffffffffa054f114>] vmx_cpuid_update+0x74/0x170 [kvm_intel]
     [<ffffffffa03629b6>] kvm_vcpu_ioctl_set_cpuid2+0x76/0x90 [kvm]
     [<ffffffffa0341c67>] kvm_arch_vcpu_ioctl+0xc37/0xed0 [kvm]
     [<ffffffff81143f7c>] ? __vunmap+0x9c/0x110
     [<ffffffffa0551489>] ? vmx_vcpu_load+0x39/0x1a0 [kvm_intel]
     [<ffffffffa0340ee2>] ? kvm_arch_vcpu_load+0x52/0x1a0 [kvm]
     [<ffffffffa032dcd4>] ? vcpu_load+0x74/0xd0 [kvm]
     [<ffffffffa032deb0>] kvm_vcpu_ioctl+0x110/0x5e0 [kvm]
     [<ffffffffa032e93d>] ? kvm_dev_ioctl+0x4d/0x4a0 [kvm]
     [<ffffffff8117dc6f>] do_vfs_ioctl+0x8f/0x530
     [<ffffffff81139d76>] ? remove_vma+0x56/0x60
     [<ffffffff8113b708>] ? do_munmap+0x328/0x400
     [<ffffffff81187c8c>] ? fget_light+0x4c/0x100
     [<ffffffff8117e1a1>] sys_ioctl+0x91/0xb0
     [<ffffffff815a942d>] system_call_fastpath+0x1a/0x1f

This patch adds a check for the availability of secondary exec
control to avoid these warnings.

Cc: <stable@vger.kernel.org> [v3.6+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
11 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Linus Torvalds [Fri, 16 Nov 2012 22:10:15 +0000 (14:10 -0800)]
Merge git://git./linux/kernel/git/davem/net

Pull networking updates from David Miller:

 1) tx_filtered/ps_tx_buf queues need to be accessed with the SKB queue
    lock, from Arik Nemtsov.

 2) Don't call 802.11 driver's filter configure method until it's
    actually open, from Felix Fietkau.

 3) Use ieee80211_free_txskb otherwise we leak control information.
    From Johannes Berg.

 4) Fix memory leak in bluetooth UUID removal,f rom Johan Hedberg.

 5) The shift mask trick doesn't work properly when 'optname' is out of
    range in do_ip_setsockopt().  Use a straightforward switch statement
    instead, the compiler emits essentially the same code but without
    the missing range check.  From Xi Wang.

 6) Fix when we call tcp_replace_ts_recent() otherwise we can
    erroneously accept a too-high tsval.  From Eric Dumazet.

 7) VXLAN bug fixes, mostly to do with VLAN header length handling, from
    Alexander Duyck.

 8) Missing return value initialization for IPV6_MINHOPCOUNT socket
    option handling.  From Hannes Frederic.

 9) Fix regression in tasklet handling in jme/ksz884x/xilinx drivers,
    from Xiaotian Feng.

10) At smsc911x driver init time, we don't know if the chip is in word
    swap mode or not.  However we do need to wait for the control
    register's ready bit to be set before we program any other part of
    the chip.  Adjust the wait loop to account for this.  From Kamlakant
    Patel.

11) Revert erroneous MDIO bus unregister change to mdio-bitbang.c

12) Fix memory leak in /proc/net/sctp/, from Tommi Rantala.

13) tilegx driver registers IRQ with NULL name, oops, from Simon Marchi.

14) TCP metrics hash table kzalloc() based allocation can fail, back
    down to using vmalloc() if it does.  From Eric Dumazet.

15) Fix packet steering out-of-order delivery regression, from Tom
    Herbert.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (40 commits)
  net-rps: Fix brokeness causing OOO packets
  tcp: handle tcp_net_metrics_init() order-5 memory allocation failures
  batman-adv: process broadcast packets in BLA earlier
  batman-adv: don't add TEMP clients belonging to other backbone nodes
  batman-adv: correctly pass the client flag on tt_response
  batman-adv: fix tt_global_entries flags update
  tilegx: request_irq with a non-null device name
  net: correct check in dev_addr_del()
  tcp: fix retransmission in repair mode
  sctp: fix /proc/net/sctp/ memory leak
  Revert "drivers/net/phy/mdio-bitbang.c: Call mdiobus_unregister before mdiobus_free"
  net/smsc911x: Fix ready check in cases where WORD_SWAP is needed
  drivers/net: fix tasklet misuse issue
  ipv4/ip_vti.c: VTI fix post-decryption forwarding
  brcmfmac: fix typo in CONFIG_BRCMISCAN
  vxlan: Update hard_header_len based on lowerdev when instantiating VXLAN
  vxlan: fix a typo.
  ipv6: setsockopt(IPIPPROTO_IPV6, IPV6_MINHOPCOUNT) forgot to set return value
  doc/net: Fix typo in netdev-features.txt
  vxlan: Fix error that was resulting in VXLAN MTU size being 10 bytes too large
  ...

11 years agoARM: sunxi: Add entry to MAINTAINERS
Maxime Ripard [Thu, 15 Nov 2012 20:51:26 +0000 (21:51 +0100)]
ARM: sunxi: Add entry to MAINTAINERS

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoARM: sunxi: Add device tree for the A13 and the Olinuxino board
Maxime Ripard [Wed, 14 Nov 2012 19:17:04 +0000 (20:17 +0100)]
ARM: sunxi: Add device tree for the A13 and the Olinuxino board

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
11 years agoARM: sunxi: Add earlyprintk support
Maxime Ripard [Thu, 8 Nov 2012 11:40:49 +0000 (12:40 +0100)]
ARM: sunxi: Add earlyprintk support

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Stefan Roese <sr@denx.de>