]> git.karo-electronics.de Git - linux-beck.git/log
linux-beck.git
8 years agoARM: dts: am57xx: sbc-am57x: add basic board support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:13 +0000 (20:03 +0200)]
ARM: dts: am57xx: sbc-am57x: add basic board support

SBC-AM57x is a single board computer designed for industrial and
embedded applications. It is based on the Texas Instruments Sitara AM57x
system-on-chip family. SBC-AM57x is implemented with the CL-SOM-AM57x
computer-on-module providing most of the functions, and SB-SOM-AM57x
carrier board providing additional peripheral functions and connectors.

https://www.compulab.co.il/products/sbcs/sbc-am57x-ti-am5728-am5718-single-board-computer/

https://www.compulab.co.il/products/computer-on-modules/cl-som-am57x-ti-am5728-am5718-system-on-module/

Add basic board support, including UART3, used as a serial console.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add analog audio support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:12 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add analog audio support

Add analog audio DT nodes:

1. simple-audio-card node
2. wm8731 codec node
3. MCASP3 pinmux

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add touchscreen support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:11 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add touchscreen support

Add ADS7846 touchscreen support.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add USB support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:10 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add USB support

Add USB support.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add dual EMAC support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:09 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add dual EMAC support

Add dual EMAC support.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add spi-flash support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:08 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add spi-flash support

On-board spi-flash chip is used as a main boot device.
Add spi-flash chip support (over QSPI bus).

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add eMMC support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:07 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add eMMC support

CM-SOM-AM57X has two options of main storage devices - eMMC or NAND.
Add eMMC chip support (over MMC2 bus).

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add EEPROM support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:06 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add EEPROM support

On-board EEPROM chip is used for storing a board production
info.

Add module EEPROM support (over I2C4 bus).

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add I2C3 support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:05 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add I2C3 support

Enable I2C3 bus and add appropriate pinmux.

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: dts: add RTC support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:04 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: dts: add RTC support

Add EM3027 RTC chip support (over I2C4 bus).

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx: cl-som-am57x: add basic module support
Dmitry Lifshitz [Tue, 1 Dec 2015 18:03:03 +0000 (20:03 +0200)]
ARM: dts: am57xx: cl-som-am57x: add basic module support

Add support for CompuLab CM-SOM-AM57X board.

CL-SOM-AM57x is a miniature System-on-Module (SoM) based on
TI Sitara AM57x ARM Cortex-A15 System-on-Chip family.

https://www.compulab.co.il/products/computer-on-modules/cl-som-am57x-ti-am5728-am5718-system-on-module/

Add basic DT support for standalone module (without a carrier board):

* Memory configuration
* Heartbeat led
* I2C1 and I2C4
* PMIC
* SATA

Signed-off-by: Dmitry Lifshitz <lifshitz@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add lcd support
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:09 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add lcd support

Add the necessary dss configuration to drive the startek lcd on CompuLab
sbc-t43 single board computer.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add support for mmc1
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:08 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add support for mmc1

On SBC-T43 the mmc1 interface is connected to an SD-Card slot.
Add the necessary muxing and configuration to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: sb-som: introduce SB-SOM baseboard
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:07 +0000 (15:55 +0200)]
ARM: dts: sb-som: introduce SB-SOM baseboard

CompuLab SB-SOM baseboard is a carrier board for multiple arm-based SoMs.
It currently supports (with minor adjustments to assembly) CM-T43, CM-T54,
and CM-QS600 modules. It is a building block in the SBC-T43 single board
computer, which consists of cm-t43 on top of sb-som-t43.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add support for baseboard eeprom
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:06 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add support for baseboard eeprom

SB-SOM baseboard comes with an on-board EEPROM. On SBC-T43 this EEPROM
resides on the i2c1 bus. Add it to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add pca9555 support
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:05 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add pca9555 support

SB-SOM comes with a PCA9555 GPIO extender. On SBC-T43 this resides on the
i2c1 bus. Add it to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add touchscreen support
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:04 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add touchscreen support

AM437x has an internal touchscreen controller. Add support for it
on cm-t43.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add eMMC support
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:03 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add eMMC support

One of the CompuLab cm-t43 configurations comes with on-board eMMC as
primary storage, residing on the mmc2 interface. Add it to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add USB support
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:02 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add USB support

Add USB support for CompuLab sbc-t43 single board computer,
defaulting to host mode.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add dual emac support
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:01 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add dual emac support

CM-T43 comes with 2 ethernet ports connected to the cpsw subsystem, which
has 2 modes of operation: switch mode and dual emac mode.
Add the relevant muxing and set it up to work in dual emac mode by
default.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Acked-by: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add NAND support
Nikita Kiryanov [Tue, 1 Dec 2015 13:55:00 +0000 (15:55 +0200)]
ARM: dts: am437x: cm-t43: add NAND support

One of the CompuLab cm-t43 configurations comes with on-board NAND flash as
primary storage. It is partitioned into kernel, dtb, and rootfs partitions.
Add it to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add spi-flash support
Nikita Kiryanov [Tue, 1 Dec 2015 13:54:59 +0000 (15:54 +0200)]
ARM: dts: am437x: cm-t43: add spi-flash support

CM-T43 has an on-board 2MB SPI-flash which stores U-Boot and the U-Boot
environment. Add it to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add PMIC support.
Nikita Kiryanov [Tue, 1 Dec 2015 13:54:58 +0000 (15:54 +0200)]
ARM: dts: am437x: cm-t43: add PMIC support.

Add PMIC support for CompuLab cm-t43 module. For now we keep all regulators
enabled until this could be refined with power management support.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add support for module eeprom
Nikita Kiryanov [Tue, 1 Dec 2015 13:54:57 +0000 (15:54 +0200)]
ARM: dts: am437x: cm-t43: add support for module eeprom

CM-T43 has an on-board EEPROM on i2c bus 0. Add it to the device tree.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x: cm-t43: add basic support for sbc-t43
Nikita Kiryanov [Tue, 1 Dec 2015 13:54:56 +0000 (15:54 +0200)]
ARM: dts: am437x: cm-t43: add basic support for sbc-t43

Add basic support for SBC-T43: a CM-T43 based single board computer.
CM-T43 is an AM437x based System-on-Module designed to serve as a building
block in embedded applications. SBC-T43 is composed of CM-T43 module on
top of the SB-SOM-T43 baseboard.
Basic support includes UART, GPIO, and I2C.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Acked-by: Rob Herring <robh@kernel.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benoit Cousson <bcousson@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Dmitry Lifshitz <lifshitz@compulab.co.il>
Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: dra72-evm: Mark uart1 rxd as wakeup capable
Vignesh R [Thu, 26 Nov 2015 08:31:26 +0000 (14:01 +0530)]
ARM: dts: dra72-evm: Mark uart1 rxd as wakeup capable

Uart1 rxd  is wakeup capable on DRA72 EVM. Hence, mark rxd line as
wakeup capable. This is similar to commit 66b0436977e2c ("ARM: dts:
dra7-evm: Mark uart1 rxd as wakeup capable") for DRA74 EVM.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Acked-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am4372: add spi alias for qspi
Mugunthan V N [Thu, 19 Nov 2015 07:01:02 +0000 (12:31 +0530)]
ARM: dts: am4372: add spi alias for qspi

Set the alias for qspi to spi0

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: dra7: add spi alias for qspi
Mugunthan V N [Thu, 19 Nov 2015 07:01:01 +0000 (12:31 +0530)]
ARM: dts: dra7: add spi alias for qspi

Set the alias for qspi to spi0

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoarm, am335x: add support for the bosch shc board
Heiko Schocher [Tue, 17 Nov 2015 08:24:15 +0000 (09:24 +0100)]
arm, am335x: add support for the bosch shc board

add support for the am335x based shc board.

UART: 0-2 and 4
DRAM: 512 MiB
MMC:  OMAP SD/MMC: 0 @ 26 MHz
      OMAP SD/MMC: 1 @ 26 MHz
I2C:  at24 eeprom, pcf8563
USB:  USB1 (host)

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap4: Add elm node
Franklin S Cooper Jr [Wed, 28 Oct 2015 21:02:16 +0000 (16:02 -0500)]
ARM: dts: omap4: Add elm node

Add device tree entry for the error location module.

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoregulator: tps65217: remove tps65217.dtsi file
Heiko Schocher [Tue, 27 Oct 2015 12:36:36 +0000 (13:36 +0100)]
regulator: tps65217: remove tps65217.dtsi file

remove tps65217.dtsi and adapt all boards, which
used it.

Signed-off-by: Heiko Schocher <hs@denx.de>
Tested-by: Keerthy <j-keerthy@ti.com>
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: cm-t335: add support for PWM backlight
Ilya Ledvich [Tue, 24 Nov 2015 14:02:13 +0000 (16:02 +0200)]
ARM: dts: cm-t335: add support for PWM backlight

Add pinmux configuration for ECAP0 pin.
Add node for PWM backlight device.
Use PWM output from ecap0 as backlight source.

Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: cm-t335: add support for network device
Ilya Ledvich [Tue, 24 Nov 2015 14:02:12 +0000 (16:02 +0200)]
ARM: dts: cm-t335: add support for network device

Add pinmux configurations for RGMII1 based CPSW Ethernet pins and
MDIO pins:
 - default configuration required for module in active state,
 - sleep configuration required for module in inactive state.
Add mac node with single slave device. Add nodes for davinci_mdio and
cpsw_emac0.

Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: cm-t335: add support for MMC
Ilya Ledvich [Tue, 24 Nov 2015 14:02:11 +0000 (16:02 +0200)]
ARM: dts: cm-t335: add support for MMC

Add pinmux configuration for MMC0 pins.
Add fixed regulator 'vmmc_fixed'.
Enable MMC0 in 4-bit mode.

Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: cm-t335: add support for NAND flash
Ilya Ledvich [Tue, 24 Nov 2015 14:02:10 +0000 (16:02 +0200)]
ARM: dts: cm-t335: add support for NAND flash

Add pinmux configuration for NAND specific GPMC pins.
Add description for GPMC controller. Add child node for NAND flash
including CM-T335 specific partition table to GPMC node.
Enable error-location module (ELM).

Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: cm-t335: add basic support for I2C
Ilya Ledvich [Tue, 24 Nov 2015 14:02:09 +0000 (16:02 +0200)]
ARM: dts: cm-t335: add basic support for I2C

Add pinmux configuration for I2C0 and I2C1 pins.
Add description for I2C0 bus, set clock frequency to 400kHz.
Add child nodes for 24c02 EEPROM and em3027 RTC on I2C0 bus.

Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: cm-t335: add initial support
Ilya Ledvich [Tue, 24 Nov 2015 14:02:08 +0000 (16:02 +0200)]
ARM: dts: cm-t335: add initial support

Add basic support for CompuLab cm-t335 module based on AM335X SoC.

CM-T335 is a tiny computer-on-module (CoM) / system-on-module (SoM)
The module is built around the Texas Instruments Sitara AM3352/4
system-on-chip.

The CPU is supplemented with up-to 512MB DDR3 and up-to 1GB of on-board
NAND storage, WiFi connected to SPI, Bluetooth, Analog audio, Gigabit
Ethernet, CAN bus.

Current patch adds support:
UART0 and GPIO LED

Detailed description can be found at the module site:
http://www.compulab.co.il/products/computer-on-modules/cm-t335/

Signed-off-by: Ilya Ledvich <ilya@compulab.co.il>
[uri.mashiach@compulab.co.il: the default RAM amount reduced to
128MB to support also the minimal module configuration]
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: Set VAUX1 and VAUX4 on Logic PD Torpedo
Adam Ford [Mon, 26 Oct 2015 12:53:10 +0000 (07:53 -0500)]
ARM: dts: Set VAUX1 and VAUX4 on Logic PD Torpedo

The schematic expects VAUX1 to be 3.0V attached to the debug port.
The schematic expects VAUX4 to be 1.8V.
VAUX4 powers VDDS_CSI2 on processor.

Signed-off-by: Adam Ford <adam.ford@logicpd.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: Change I2C2 and I2C3 to 400KHz for LogicPD Torpedo DM3730 devkit
Adam Ford [Mon, 26 Oct 2015 12:42:38 +0000 (07:42 -0500)]
ARM: dts: Change I2C2 and I2C3 to 400KHz for LogicPD Torpedo DM3730 devkit

When used with the Logic PD development kit, this makes the I2C buses match
the BSP released by Logic PD.

Signed-off-by: Adam Ford <adam.ford@logicpd.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: Enable UART2 pinctrl on LogicPD Torpedo + Wireless module
Adam Ford [Mon, 26 Oct 2015 12:27:37 +0000 (07:27 -0500)]
ARM: dts: Enable UART2 pinctrl on LogicPD Torpedo + Wireless module

Setup UART2 for communication at 3MBps with flow control.

Signed-off-by: Adam Ford <adam.ford@logicpd.com>
[tony@atomide.com: dropped the kim changes, that binding has been removed]
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: Set VAUX1 and VAUX4 to 3.0V and 1.8V respectively
Adam Ford [Fri, 23 Oct 2015 12:27:33 +0000 (07:27 -0500)]
ARM: dts: Set VAUX1 and VAUX4 to 3.0V and 1.8V respectively

The development kit schematic expects VAUX1 to be 3.0V.  Most users use the development kit as a reference.
The development kit schematic expects VAUX4 to be 1.8V.  VAUX4 powers VDDS_CSI2 on processor.  If the voltage is too high it could damage the processor.
If it's too low, it won't work.

Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: Change I2C2 and I2C3 to 400KHz for LogicPD Torpedo DM3730 devkit
Adam Ford [Fri, 23 Oct 2015 12:23:14 +0000 (07:23 -0500)]
ARM: dts: Change I2C2 and I2C3 to 400KHz for LogicPD Torpedo DM3730 devkit

When used with the Logic PD development kit, this makes the I2C buses match
the BSP released by Logic PD.

Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: Add audio support for LogicPD Torpedo DM3730 devkit
Adam Ford [Fri, 23 Oct 2015 12:20:23 +0000 (07:20 -0500)]
ARM: dts: Add audio support for LogicPD Torpedo DM3730 devkit

Use the TWL4030 Codec with mcbsp2 on Torpedo.

Signed-off-by: Adam Ford <adam.ford@logicpd.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x/am33xx/omap/dm816x: Add gpmc dma channel
Franklin S Cooper Jr [Thu, 15 Oct 2015 17:37:27 +0000 (12:37 -0500)]
ARM: dts: am437x/am33xx/omap/dm816x: Add gpmc dma channel

Add dma channel information to the gpmc. Although not enabled by
default this will allow prefetch-dma to be used.

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: Add omap4-hwspinlock support in dm816x
Neil Armstrong [Thu, 12 Nov 2015 14:07:49 +0000 (15:07 +0100)]
ARM: dts: Add omap4-hwspinlock support in dm816x

Add dm816x DT entries for omap4-hwspinlock support as hwmod spinbox.

Cc: Brian Hutchinson <b.hutchman@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: remove dm816x invalid DT l3_main hwmod
Neil Armstrong [Thu, 12 Nov 2015 14:07:45 +0000 (15:07 +0100)]
ARM: dts: remove dm816x invalid DT l3_main hwmod

Remove invalid l3_main hwmod entry from dm816x DT ocp node.

Cc: Brian Hutchinson <b.hutchman@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: add dm816x pwm property to timers
Neil Armstrong [Thu, 12 Nov 2015 14:07:40 +0000 (15:07 +0100)]
ARM: dts: add dm816x pwm property to timers

Adds ti,timer-pwm property to timers 4 to 7 to permit usage of their
PWM output fonctionnality via the dmtimer driver.

Cc: Brian Hutchinson <b.hutchman@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-boneblack: Use pinctrl constants and AM33XX_IOPAD macro
Andrew F. Davis [Fri, 13 Nov 2015 16:47:27 +0000 (10:47 -0600)]
ARM: dts: am335x-boneblack: Use pinctrl constants and AM33XX_IOPAD macro

Using constants for pinctrl allows better readability and removes
redundancy with comments. AM33XX_IOPAD allows us to use part of the
pinctrl physical address as in the TRM instead of an offset.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap5-uevm.dts: Use OMAP5_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:17 +0000 (01:54 -0300)]
ARM: dts: omap5-uevm.dts: Use OMAP5_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap5-cm-t54: Use OMAP5_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:16 +0000 (01:54 -0300)]
ARM: dts: omap5-cm-t54: Use OMAP5_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap5-board-common: Use OMAP5_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:15 +0000 (01:54 -0300)]
ARM: dts: omap5-board-common: Use OMAP5_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: twl6030: Use OMAP4_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:14 +0000 (01:54 -0300)]
ARM: dts: twl6030: Use OMAP4_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap4-sdp-es23plus: Use OMAP4_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:13 +0000 (01:54 -0300)]
ARM: dts: omap4-sdp-es23plus: Use OMAP4_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap4-sdp: Use OMAP4_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:12 +0000 (01:54 -0300)]
ARM: dts: omap4-sdp: Use OMAP4_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap4-panda-es: Use OMAP4_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:11 +0000 (01:54 -0300)]
ARM: dts: omap4-panda-es: Use OMAP4_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap4-panda-common: Use OMAP4_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:10 +0000 (01:54 -0300)]
ARM: dts: omap4-panda-common: Use OMAP4_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap4-panda-a4: Use OMAP4_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:09 +0000 (01:54 -0300)]
ARM: dts: omap4-panda-a4: Use OMAP4_IOPAD pinmux macro

Use the pinmux IOPAD macros to define the register as an offset from
the padconf physical address instead of the offset from padconf base.
This makes the DTS easier to read since matches the addresses listed
in the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: twl4030: Use OMAP3_CORE1_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:08 +0000 (01:54 -0300)]
ARM: dts: twl4030: Use OMAP3_CORE1_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap3-zoom3: Use OMAP3_*_IOPAD pinmux macros
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:07 +0000 (01:54 -0300)]
ARM: dts: omap3-zoom3: Use OMAP3_*_IOPAD pinmux macros

Use the pinmux IOPAD macros to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap3-n9: Use OMAP3_CORE1_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:06 +0000 (01:54 -0300)]
ARM: dts: omap3-n9: Use OMAP3_CORE1_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap3-n900: Use OMAP3_CORE1_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:05 +0000 (01:54 -0300)]
ARM: dts: omap3-n900: Use OMAP3_CORE1_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap3-ldp: Use OMAP3_CORE1_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:04 +0000 (01:54 -0300)]
ARM: dts: omap3-ldp: Use OMAP3_CORE1_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap3-evm-37xx: Use OMAP3_*_IOPAD pinmux macros
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:03 +0000 (01:54 -0300)]
ARM: dts: omap3-evm-37xx: Use OMAP3_*_IOPAD pinmux macros

Use the pinmux IOPAD macros to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap3-beagle-xm: Use OMAP3_*_IOPAD pinmux macros
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:02 +0000 (01:54 -0300)]
ARM: dts: omap3-beagle-xm: Use OMAP3_*_IOPAD pinmux macros

Use the pinmux IOPAD macros to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: omap3-beagle: Use OMAP3_*_IOPAD pinmux macros
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:01 +0000 (01:54 -0300)]
ARM: dts: omap3-beagle: Use OMAP3_*_IOPAD pinmux macros

Use the pinmux IOPAD macros to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: dra72-evm: Use DRA7XX_CORE_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:54:00 +0000 (01:54 -0300)]
ARM: dts: dra72-evm: Use DRA7XX_CORE_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: dra7-evm: Use DRA7XX_CORE_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:59 +0000 (01:53 -0300)]
ARM: dts: dra7-evm: Use DRA7XX_CORE_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am57xx-beagle-x15: Use DRA7XX_CORE_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:58 +0000 (01:53 -0300)]
ARM: dts: am57xx-beagle-x15: Use DRA7XX_CORE_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am43x-epos-evm: Use AM4372_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:57 +0000 (01:53 -0300)]
ARM: dts: am43x-epos-evm: Use AM4372_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x-sk-evm: Use AM4372_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:56 +0000 (01:53 -0300)]
ARM: dts: am437x-sk-evm: Use AM4372_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x-idk-evm: Use AM4372_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:55 +0000 (01:53 -0300)]
ARM: dts: am437x-idk-evm: Use AM4372_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am437x-gp-evm: Use AM4372_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:54 +0000 (01:53 -0300)]
ARM: dts: am437x-gp-evm: Use AM4372_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am3517-craneboard: Use OMAP3_CORE1_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:53 +0000 (01:53 -0300)]
ARM: dts: am3517-craneboard: Use OMAP3_CORE1_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-wega: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:52 +0000 (01:53 -0300)]
ARM: dts: am335x-wega: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-phycore-som: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:51 +0000 (01:53 -0300)]
ARM: dts: am335x-phycore-som: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-pepper: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:50 +0000 (01:53 -0300)]
ARM: dts: am335x-pepper: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-nano: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:49 +0000 (01:53 -0300)]
ARM: dts: am335x-nano: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-lxm: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:48 +0000 (01:53 -0300)]
ARM: dts: am335x-lxm: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-evmsk: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:47 +0000 (01:53 -0300)]
ARM: dts: am335x-evmsk: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Also, use the mux defines instead of magic numbers for the padconf
values when defining the pinctrl lines to make it more readable.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-evm: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:46 +0000 (01:53 -0300)]
ARM: dts: am335x-evm: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Also, use the mux defines instead of magic numbers for the padconf
values when defining the pinctrl lines to make it more readable.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-chilisom: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:45 +0000 (01:53 -0300)]
ARM: dts: am335x-chilisom: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-chiliboard: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:44 +0000 (01:53 -0300)]
ARM: dts: am335x-chiliboard: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-bonegreen: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:43 +0000 (01:53 -0300)]
ARM: dts: am335x-bonegreen: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-bone-common: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:42 +0000 (01:53 -0300)]
ARM: dts: am335x-bone-common: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-baltos-ir5221: Use AM33XX_IOPAD pinmux macro
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:41 +0000 (01:53 -0300)]
ARM: dts: am335x-baltos-ir5221: Use AM33XX_IOPAD pinmux macro

Use the pinmux IOPAD macro to define the register absolute physical
address instead of the offset from the padconf base address. This
makes the DTS easier to read since matches the addresses listed in
the Technical Reference Manual.

Also, use the mux defines instead of magic numbers for the padconf
values when defining the pinctrl lines to make it more readable.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoARM: dts: am335x-baltos-ir5221: Remove leftover pinctrl lines
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:40 +0000 (01:53 -0300)]
ARM: dts: am335x-baltos-ir5221: Remove leftover pinctrl lines

When the Device Tree source file got merged, some commented pinctrl lines
were left in the file. These are already defined so seems to be a cleanup
that was missed. Delete the unneeded lines from the file.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agopinctrl: Move am4372 and dra7 macros to the the SoC header files
Javier Martinez Canillas [Fri, 13 Nov 2015 04:53:39 +0000 (01:53 -0300)]
pinctrl: Move am4372 and dra7 macros to the the SoC header files

The <dt-bindings/pinctrl/omap.h> header file defines a set of macros
for different SoCs families that falls under the OMAP sub-arch, that
allow to define the padconf register physical address instead of the
register offset from the padconf base.

But the am43xx and dra7xx SoCs families have their own pinctrl header
file so the DTS using these SoCs aren't able to use the AM4372_IOPAD()
and DRA7XX_CORE_IOPAD() macros since <dt-bindings/pinctrl/omap.h> is
not included.

Move the macros to the correct header files so can be used by the DTS.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
8 years agoLinux 4.4-rc2
Linus Torvalds [Mon, 23 Nov 2015 00:45:59 +0000 (16:45 -0800)]
Linux 4.4-rc2

8 years agoMerge branch 'akpm' (patches from Andrew)
Linus Torvalds [Sun, 22 Nov 2015 23:21:40 +0000 (15:21 -0800)]
Merge branch 'akpm' (patches from Andrew)

Merge slub bulk allocator updates from Andrew Morton:
 "This missed the merge window because I was waiting for some repairs to
  come in.  Nothing actually uses the bulk allocator yet and the changes
  to other code paths are pretty small.  And the net guys are waiting
  for this so they can start merging the client code"

More comments from Jesper Dangaard Brouer:
 "The kmem_cache_alloc_bulk() call, in mm/slub.c, were included in
  previous kernel.  The present version contains a bug.  Vladimir
  Davydov noticed it contained a bug, when kernel is compiled with
  CONFIG_MEMCG_KMEM (see commit 03ec0ed57ffc: "slub: fix kmem cgroup
  bug in kmem_cache_alloc_bulk").  Plus the mem cgroup counterpart in
  kmem_cache_free_bulk() were missing (see commit 033745189b1b "slub:
  add missing kmem cgroup support to kmem_cache_free_bulk").

  I don't consider the fix stable-material because there are no in-tree
  users of the API.

  But with known bugs (for memcg) I cannot start using the API in the
  net-tree"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
  slab/slub: adjust kmem_cache_alloc_bulk API
  slub: add missing kmem cgroup support to kmem_cache_free_bulk
  slub: fix kmem cgroup bug in kmem_cache_alloc_bulk
  slub: optimize bulk slowpath free by detached freelist
  slub: support for bulk free with SLUB freelists

8 years agoMerge tag 'tty-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Linus Torvalds [Sun, 22 Nov 2015 23:10:57 +0000 (15:10 -0800)]
Merge tag 'tty-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Pull tty/serial fixes from Greg KH:
 "Here are a few small tty/serial driver fixes for 4.4-rc2 that resolve
  some reported problems.

  All have been in linux-next, full details are in the shortlog below"

* tag 'tty-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
  serial: export fsl8250_handle_irq
  serial: 8250_mid: Add missing dependency
  tty: audit: Fix audit source
  serial: etraxfs-uart: Fix crash
  serial: fsl_lpuart: Fix earlycon support
  bcm63xx_uart: Use the device name when registering an interrupt
  tty: Fix direct use of tty buffer work
  tty: Fix tty_send_xchar() lock order inversion

8 years agoMerge tag 'staging-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
Linus Torvalds [Sun, 22 Nov 2015 21:26:24 +0000 (13:26 -0800)]
Merge tag 'staging-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging/IIO fixes from Greg KH:
 "Here are some staging and iio driver fixes for 4.4-rc2.  All of these
  are in response to issues that have been reported and have been in
  linux-next for a while"

* tag 'staging-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  Revert "Staging: wilc1000: coreconfigurator: Drop unneeded wrapper functions"
  iio: adc: xilinx: Fix VREFN scale
  iio: si7020: Swap data byte order
  iio: adc: vf610_adc: Fix division by zero error
  iio:ad7793: Fix ad7785 product ID
  iio: ad5064: Fix ad5629/ad5669 shift
  iio:ad5064: Make sure ad5064_i2c_write() returns 0 on success
  iio: lpc32xx_adc: fix warnings caused by enabling unprepared clock
  staging: iio: select IRQ_WORK for IIO_DUMMY_EVGEN
  vf610_adc: Fix internal temperature calculation

8 years agoMerge tag 'usb-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Linus Torvalds [Sun, 22 Nov 2015 21:15:05 +0000 (13:15 -0800)]
Merge tag 'usb-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb

Pull USB fixes from Greg KH:
 "Here are a number of USB fixes and new device ids for 4.4-rc2.  All
  have been in linux-next and the details are in the shortlog"

* tag 'usb-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (28 commits)
  usblp: do not set TASK_INTERRUPTIBLE before lock
  USB: MAINTAINERS: cxacru
  usb: kconfig: fix warning of select USB_OTG
  USB: option: add XS Stick W100-2 from 4G Systems
  xhci: Fix a race in usb2 LPM resume, blocking U3 for usb2 devices
  usb: xhci: fix checking ep busy for CFC
  xhci: Workaround to get Intel xHCI reset working more reliably
  usb: chipidea: imx: fix a possible NULL dereference
  usb: chipidea: usbmisc_imx: fix a possible NULL dereference
  usb: chipidea: otg: gadget module load and unload support
  usb: chipidea: debug: disable usb irq while role switch
  ARM: dts: imx27.dtsi: change the clock information for usb
  usb: chipidea: imx: refine clock operations to adapt for all platforms
  usb: gadget: atmel_usba_udc: Expose correct device speed
  usb: musb: enable usb_dma parameter
  usb: phy: phy-mxs-usb: fix a possible NULL dereference
  usb: dwc3: gadget: let us set lower max_speed
  usb: musb: fix tx fifo flush handling
  usb: gadget: f_loopback: fix the warning during the enumeration
  usb: dwc2: host: Fix remote wakeup when not in DWC2_L2
  ...

8 years agoMerge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Linus Torvalds [Sun, 22 Nov 2015 20:59:46 +0000 (12:59 -0800)]
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus

Pull MIPS fixes from Ralf Baechle:

 - Fix a flood of annoying build warnings

 - A number of fixes for Atheros 79xx platforms

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
  MIPS: ath79: Add a machine entry for booting OF machines
  MIPS: ath79: Fix the size of the MISC INTC registers in ar9132.dtsi
  MIPS: ath79: Fix the DDR control initialization on ar71xx and ar934x
  MIPS: Fix flood of warnings about comparsion being always true.

8 years agoMerge branch 'parisc-4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
Linus Torvalds [Sun, 22 Nov 2015 20:50:58 +0000 (12:50 -0800)]
Merge branch 'parisc-4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc update from Helge Deller:
 "This patchset adds Huge Page and HUGETLBFS support for parisc"

Honestly, the hugepage support should have gone through in the merge
window, and is not really an rc-time fix.  But it only touches
arch/parisc, and I cannot find it in myself to care.  If one of the
three parisc users notices a breakage, I will point at Helge and make
rude farting noises.

* 'parisc-4.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Map kernel text and data on huge pages
  parisc: Add Huge Page and HUGETLBFS support
  parisc: Use long branch to do_syscall_trace_exit
  parisc: Increase initial kernel mapping to 32MB on 64bit kernel
  parisc: Initialize the fault vector earlier in the boot process.
  parisc: Add defines for Huge page support
  parisc: Drop unused MADV_xxxK_PAGES flags from asm/mman.h
  parisc: Drop definition of start_thread_som for HP-UX SOM binaries
  parisc: Fix wrong comment regarding first pmd entry flags

8 years agoMerge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sun, 22 Nov 2015 20:37:20 +0000 (12:37 -0800)]
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf tool fixes from Thomas Gleixner:
 "A couple of fixes for perf tools:

   - Build system updates

   - Plug a memory leak in an error path of perf probe

   - Tear down probes correctly when adding fails

   - Fixes to the perf symbol handling

   - Fix ordering of event processing in buildid-list

   - Fix per DSO filtering in the histogram browser"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf probe: Clear probe_trace_event when add_probe_trace_event() fails
  perf probe: Fix memory leaking on failure by clearing all probe_trace_events
  perf inject: Also re-pipe lost_samples event
  perf buildid-list: Requires ordered events
  perf symbols: Fix dso lookup by long name and missing buildids
  perf symbols: Allow forcing reading of non-root owned files by root
  perf hists browser: The dso can be obtained from popup_action->ms.map->dso
  perf hists browser: Fix 'd' hotkey action to filter by DSO
  perf symbols: Rebuild rbtree when adjusting symbols for kcore
  tools: Add a "make all" rule
  tools: Actually install tmon in the install rule

8 years agoMerge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sun, 22 Nov 2015 20:00:12 +0000 (12:00 -0800)]
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Thomas Gleixner:
 "This update contains:

   - MPX updates for handling 32bit processes

   - A fix for a long standing bug in 32bit signal frame handling
     related to FPU/XSAVE state

   - Handle get_xsave_addr() correctly in KVM

   - Fix SMAP check under paravirtualization

   - Add a comment to the static function trace entry to avoid further
     confusion about the difference to dynamic tracing"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/cpu: Fix SMAP check in PVOPS environments
  x86/ftrace: Add comment on static function tracing
  x86/fpu: Fix get_xsave_addr() behavior under virtualization
  x86/fpu: Fix 32-bit signal frame handling
  x86/mpx: Fix 32-bit address space calculation
  x86/mpx: Do proper get_user() when running 32-bit binaries on 64-bit kernels

8 years agoslab/slub: adjust kmem_cache_alloc_bulk API
Jesper Dangaard Brouer [Fri, 20 Nov 2015 23:57:58 +0000 (15:57 -0800)]
slab/slub: adjust kmem_cache_alloc_bulk API

Adjust kmem_cache_alloc_bulk API before we have any real users.

Adjust API to return type 'int' instead of previously type 'bool'.  This
is done to allow future extension of the bulk alloc API.

A future extension could be to allow SLUB to stop at a page boundary, when
specified by a flag, and then return the number of objects.

The advantage of this approach, would make it easier to make bulk alloc
run without local IRQs disabled.  With an approach of cmpxchg "stealing"
the entire c->freelist or page->freelist.  To avoid overshooting we would
stop processing at a slab-page boundary.  Else we always end up returning
some objects at the cost of another cmpxchg.

To keep compatible with future users of this API linking against an older
kernel when using the new flag, we need to return the number of allocated
objects with this API change.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Cc: Vladimir Davydov <vdavydov@virtuozzo.com>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
8 years agoslub: add missing kmem cgroup support to kmem_cache_free_bulk
Jesper Dangaard Brouer [Fri, 20 Nov 2015 23:57:55 +0000 (15:57 -0800)]
slub: add missing kmem cgroup support to kmem_cache_free_bulk

Initial implementation missed support for kmem cgroup support in
kmem_cache_free_bulk() call, add this.

If CONFIG_MEMCG_KMEM is not enabled, the compiler should be smart enough
to not add any asm code.

Incoming bulk free objects can belong to different kmem cgroups, and
object free call can happen at a later point outside memcg context.  Thus,
we need to keep the orig kmem_cache, to correctly verify if a memcg object
match against its "root_cache" (s->memcg_params.root_cache).

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Reviewed-by: Vladimir Davydov <vdavydov@virtuozzo.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
8 years agoslub: fix kmem cgroup bug in kmem_cache_alloc_bulk
Jesper Dangaard Brouer [Fri, 20 Nov 2015 23:57:52 +0000 (15:57 -0800)]
slub: fix kmem cgroup bug in kmem_cache_alloc_bulk

The call slab_pre_alloc_hook() interacts with kmemgc and is not allowed to
be called several times inside the bulk alloc for loop, due to the call to
memcg_kmem_get_cache().

This would result in hitting the VM_BUG_ON in __memcg_kmem_get_cache.

As suggested by Vladimir Davydov, change slab_post_alloc_hook() to be able
to handle an array of objects.

A subtle detail is, loop iterator "i" in slab_post_alloc_hook() must have
same type (size_t) as size argument.  This helps the compiler to easier
realize that it can remove the loop, when all debug statements inside loop
evaluates to nothing.  Note, this is only an issue because the kernel is
compiled with GCC option: -fno-strict-overflow

In slab_alloc_node() the compiler inlines and optimizes the invocation of
slab_post_alloc_hook(s, flags, 1, &object) by removing the loop and access
object directly.

Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Reported-by: Vladimir Davydov <vdavydov@virtuozzo.com>
Suggested-by: Vladimir Davydov <vdavydov@virtuozzo.com>
Reviewed-by: Vladimir Davydov <vdavydov@virtuozzo.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
8 years agoslub: optimize bulk slowpath free by detached freelist
Jesper Dangaard Brouer [Fri, 20 Nov 2015 23:57:49 +0000 (15:57 -0800)]
slub: optimize bulk slowpath free by detached freelist

This change focus on improving the speed of object freeing in the
"slowpath" of kmem_cache_free_bulk.

The calls slab_free (fastpath) and __slab_free (slowpath) have been
extended with support for bulk free, which amortize the overhead of
the (locked) cmpxchg_double.

To use the new bulking feature, we build what I call a detached
freelist.  The detached freelist takes advantage of three properties:

 1) the free function call owns the object that is about to be freed,
    thus writing into this memory is synchronization-free.

 2) many freelist's can co-exist side-by-side in the same slab-page
    each with a separate head pointer.

 3) it is the visibility of the head pointer that needs synchronization.

Given these properties, the brilliant part is that the detached
freelist can be constructed without any need for synchronization.  The
freelist is constructed directly in the page objects, without any
synchronization needed.  The detached freelist is allocated on the
stack of the function call kmem_cache_free_bulk.  Thus, the freelist
head pointer is not visible to other CPUs.

All objects in a SLUB freelist must belong to the same slab-page.
Thus, constructing the detached freelist is about matching objects
that belong to the same slab-page.  The bulk free array is scanned is
a progressive manor with a limited look-ahead facility.

Kmem debug support is handled in call of slab_free().

Notice kmem_cache_free_bulk no longer need to disable IRQs. This
only slowed down single free bulk with approx 3 cycles.

Performance data:
 Benchmarked[1] obj size 256 bytes on CPU i7-4790K @ 4.00GHz

SLUB fastpath single object quick reuse: 47 cycles(tsc) 11.931 ns

To get stable and comparable numbers, the kernel have been booted with
"slab_merge" (this also improve performance for larger bulk sizes).

Performance data, compared against fallback bulking:

bulk -  fallback bulk            - improvement with this patch
   1 -  62 cycles(tsc) 15.662 ns - 49 cycles(tsc) 12.407 ns- improved 21.0%
   2 -  55 cycles(tsc) 13.935 ns - 30 cycles(tsc) 7.506 ns - improved 45.5%
   3 -  53 cycles(tsc) 13.341 ns - 23 cycles(tsc) 5.865 ns - improved 56.6%
   4 -  52 cycles(tsc) 13.081 ns - 20 cycles(tsc) 5.048 ns - improved 61.5%
   8 -  50 cycles(tsc) 12.627 ns - 18 cycles(tsc) 4.659 ns - improved 64.0%
  16 -  49 cycles(tsc) 12.412 ns - 17 cycles(tsc) 4.495 ns - improved 65.3%
  30 -  49 cycles(tsc) 12.484 ns - 18 cycles(tsc) 4.533 ns - improved 63.3%
  32 -  50 cycles(tsc) 12.627 ns - 18 cycles(tsc) 4.707 ns - improved 64.0%
  34 -  96 cycles(tsc) 24.243 ns - 23 cycles(tsc) 5.976 ns - improved 76.0%
  48 -  83 cycles(tsc) 20.818 ns - 21 cycles(tsc) 5.329 ns - improved 74.7%
  64 -  74 cycles(tsc) 18.700 ns - 20 cycles(tsc) 5.127 ns - improved 73.0%
 128 -  90 cycles(tsc) 22.734 ns - 27 cycles(tsc) 6.833 ns - improved 70.0%
 158 -  99 cycles(tsc) 24.776 ns - 30 cycles(tsc) 7.583 ns - improved 69.7%
 250 - 104 cycles(tsc) 26.089 ns - 37 cycles(tsc) 9.280 ns - improved 64.4%

Performance data, compared current in-kernel bulking:

bulk - curr in-kernel  - improvement with this patch
   1 -  46 cycles(tsc) - 49 cycles(tsc) - improved (cycles:-3) -6.5%
   2 -  27 cycles(tsc) - 30 cycles(tsc) - improved (cycles:-3) -11.1%
   3 -  21 cycles(tsc) - 23 cycles(tsc) - improved (cycles:-2) -9.5%
   4 -  18 cycles(tsc) - 20 cycles(tsc) - improved (cycles:-2) -11.1%
   8 -  17 cycles(tsc) - 18 cycles(tsc) - improved (cycles:-1) -5.9%
  16 -  18 cycles(tsc) - 17 cycles(tsc) - improved (cycles: 1)  5.6%
  30 -  18 cycles(tsc) - 18 cycles(tsc) - improved (cycles: 0)  0.0%
  32 -  18 cycles(tsc) - 18 cycles(tsc) - improved (cycles: 0)  0.0%
  34 -  78 cycles(tsc) - 23 cycles(tsc) - improved (cycles:55) 70.5%
  48 -  60 cycles(tsc) - 21 cycles(tsc) - improved (cycles:39) 65.0%
  64 -  49 cycles(tsc) - 20 cycles(tsc) - improved (cycles:29) 59.2%
 128 -  69 cycles(tsc) - 27 cycles(tsc) - improved (cycles:42) 60.9%
 158 -  79 cycles(tsc) - 30 cycles(tsc) - improved (cycles:49) 62.0%
 250 -  86 cycles(tsc) - 37 cycles(tsc) - improved (cycles:49) 57.0%

Performance with normal SLUB merging is significantly slower for
larger bulking.  This is believed to (primarily) be an effect of not
having to share the per-CPU data-structures, as tuning per-CPU size
can achieve similar performance.

bulk - slab_nomerge   -  normal SLUB merge
   1 -  49 cycles(tsc) - 49 cycles(tsc) - merge slower with cycles:0
   2 -  30 cycles(tsc) - 30 cycles(tsc) - merge slower with cycles:0
   3 -  23 cycles(tsc) - 23 cycles(tsc) - merge slower with cycles:0
   4 -  20 cycles(tsc) - 20 cycles(tsc) - merge slower with cycles:0
   8 -  18 cycles(tsc) - 18 cycles(tsc) - merge slower with cycles:0
  16 -  17 cycles(tsc) - 17 cycles(tsc) - merge slower with cycles:0
  30 -  18 cycles(tsc) - 23 cycles(tsc) - merge slower with cycles:5
  32 -  18 cycles(tsc) - 22 cycles(tsc) - merge slower with cycles:4
  34 -  23 cycles(tsc) - 22 cycles(tsc) - merge slower with cycles:-1
  48 -  21 cycles(tsc) - 22 cycles(tsc) - merge slower with cycles:1
  64 -  20 cycles(tsc) - 48 cycles(tsc) - merge slower with cycles:28
 128 -  27 cycles(tsc) - 57 cycles(tsc) - merge slower with cycles:30
 158 -  30 cycles(tsc) - 59 cycles(tsc) - merge slower with cycles:29
 250 -  37 cycles(tsc) - 56 cycles(tsc) - merge slower with cycles:19

Joint work with Alexander Duyck.

[1] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/mm/slab_bulk_test01.c

[akpm@linux-foundation.org: BUG_ON -> WARN_ON;return]
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>