If we are not changing the control register value, avoid writing to it.
Writes to the control register can be very expensive, taking around a
hundred cycles or so.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Use the more common pr_warn.
Other miscellanea:
o Coalesce formats
o Realign arguments
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
When we catch something that's not a permission fault or a translation
fault, we log the unsupported FSC in the kernel log, but we were masking
off the bottom bits of the FSC which was not very helpful.
Also correctly report the FSC for data and instruction faults rather
than telling people it was a DFCS, which doesn't exist in the ARM ARM.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
The current aarch64 calculation for VTTBR_BADDR_MASK masks only 39 bits
and not all the bits in the PA range. This is clearly a bug that
manifests itself on systems that allocate memory in the higher address
space range.
[ Modified from Joel's original patch to be based on PHYS_MASK_SHIFT
instead of a hard-coded value and to move the alignment check of the
allocation to mmu.c. Also added a comment explaining why we hardcode
the IPA range and changed the stage-2 pgd allocation to be based on
the 40 bit IPA range instead of the maximum possible 48 bit PA range.
- Christoffer ]
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Joel Schopp <joel.schopp@amd.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Apparently most of the newly added nodes had the same problem,
so instead of reverting the individual patches, this undoes
the effect of the merge and backs out all of them at once.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Two of the recent patches each added support for CPU_FREQ, which
causes a kconfig warning:
arch/arm/configs/multi_v7_defconfig:443:warning: override: reassigning to symbol CPU_FREQ
This removes one of the two in order to avoid the warning.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The newly introduced support for SAMA5D4 added access to the
'AT91_ALT_BASE_SYS' register area, but failed to define the
symbols in the case when CONFIG_MMU is disabled.
We really should not hardwire addresses like this any more,
but as a small fixup, this patch just adds the missing
definitions for the nommu case, which gets at91x40_defconfig
and any configuration of sam9 and sama5 with MMU disabled
back to work.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 726d32bf79 ("ARM: at91: SAMA5D4 SoC detection code and low ...")
Fix calculation to decide if a 4-level kernel page table is required.
Git commit c972cc60c2 "s390/vmalloc: have separate modules area"
added the separate module area which reduces the size of the vmalloc
area but fails to take it into account for the 3 vs 4 level page table
decision.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
The call to topology_init is too late for the set_sched_topology call.
The initial scheduling domain structure has already been established
with default topology array. Use the smp_cpus_done() call to get the
s390 specific topology array registered early enough.
Cc: stable@vger.kernel.org # v3.16+
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Every mcount() call in the MIPS 32-bit kernel is done as follows:
[...]
move at, ra
jal _mcount
addiu sp, sp, -8
[...]
but upon returning from the mcount() function, the stack pointer
is not adjusted properly. This is explained in details in 58b69401c7
(MIPS: Function tracer: Fix broken function tracing).
Commit ad8c396936 ("MIPS: Unbreak function tracer for 64-bit kernel.)
fixed the stack manipulation for 64-bit but it didn't fix it completely
for MIPS32.
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: <stable@vger.kernel.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/7792/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Commit bbd426f542 "MIPS: Simplify FP context access" modified the
SIFROMREG & SIFROMHREG macros such that they return unsigned rather
than signed 32b integers. I had believed that to be fine, but
inadvertently missed the MFC1 & MFHC1 cases which write to a struct
pt_regs regs element. On MIPS32 this is fine, but on 64 bit those
saved regs' fields are 64 bit wide. Using unsigned values caused the
32 bit value from the FP register to be zero rather than sign extended
as the architecture specifies, causing incorrect emulation of the
MFC1 & MFHc1 instructions. Fix by reintroducing the casts to signed
integers, and therefore the sign extension.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: stable@vger.kernel.org # v3.15+
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/7848/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This reverts commit 610bd8722e.
"ARM: dts: hix5hd2: add wdg node" causes a build breakage due to
an undefined constatns:
Error: arch/arm/boot/dts/hisi-x5hd2.dtsi:374.22-23 syntax error
(Don't you just looove the dtc error messages? They are so informative!)
Signed-off-by: Olof Johansson <olof@lixom.net>
Pull "Fixes non critical for AT91" from Nicolas Ferre:
- mmc pinmux for at91sam9263 was missing
- little fix of the old clock implementation
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'at91-fixes-non-critical' of git://github.com/at91linux/linux-at91:
ARM: at91/PMC: don't forget to write PMC_PCDR register to disable clocks
ARM: at91: fix at91sam9263ek DT mmc pinmuxing settings
The ASM below does not compile with clang and is not the way that the mcr
command is used in other parts of the kernel.
arch/arm/mach-vt8500/vt8500.c:72:11: error: invalid % escape in inline assembly string
asm("mcr%? p15, 0, %0, c7, c0, 4" : : "r" (0));
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
There are other forms that are supported on different ARM instruction sets but
generally the kernel just uses mcr as it is supported in all ARM instruction
sets.
Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Tony Prisk <linux@prisktech.co.nz>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add all HW-support options from tegra_defconfig that are missing from
multi_v7_defconfig.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Pull "Samsung DT update for 3.18" from Kukjin Kim:
- un-use slot-node and deprecate the supports-highspped
for dw-mmc
- remove old USB2 PHY node for exynos5250
- exynos4412-odroid-common
enable PMIC interrupt and i2c improvements
- exynos5250-snow
fold exynos5250-cros-common
update display related nodes
- Peach Pit and Pi
improve power scheme, add support max77802 PMIC,
add hdmi regulators add thermistor, ISL29018 sensor,
set i2c clock at 400kHz, add support Atmel touchpad,
update display related nodes
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'samsung-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: dts: remove old USB2 PHY node for exynos5250
ARM: dts: remove old USB2 PHY node hook for exynos5250-arndale
ARM: dts: update display related nodes for exynos5800-peach-pi
ARM: dts: update display related nodes for exynos5420-peach-pit
ARM: dts: update display related nodes for exynos5250-snow
ARM: dts: Add support Atmel touchpad for exynos5800-peach-pi
ARM: dts: Add support Atmel touchpad for exynos5420-peach-pit
ARM: dts: Set i2c7 clock at 400kHz for exynos based Peach boards
ARM: dts: Add ISL29018 sensor for exynos based Peach boards
ARM: dts: Add thermistor dts fragment used by exynos based Peach boards
ARM: dts: add hdmi regulators for exynos5420-peach-pit
ARM: dts: add hdmi regulators for exynos5800-peach-pi
ARM: dts: Add support max77802 PMIC for exynos based Peach boards
ARM: dts: Improve Peach Pit and Pi power scheme
ARM: dts: unuse the slot-node and deprecate the supports-highspeed for dw-mmc in exynos
ARM: dts: Fold exynos5250-cros-common into exynos5250-snow
ARM: dts: Fix MMC pinctrl for exynos5250-snow
ARM: dts: ODROID i2c improvements for exynos4412-odroid-common
ARM: dts: Enable PMIC interrupts for exynos4412-odroid-common
Add dt for rk3288 i2s controller, since i2s clock pins and data pins
default to be GPIO, this patch also add pinctrl to mux them.
Tested on RK3288 board.
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Pull "Second SoC batch for 3.18" from Nicolas Ferre:
- introduction of the new SAMA5D4 SoC and associated Evaluation Kit
- low level soc detection and early printk code
- taking advantage of this, documentation of all AT91 SoC DT strings
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'at91-soc2' of git://github.com/at91linux/linux-at91:
ARM: at91: document Atmel SMART compatibles
ARM: at91: add sama5d4 support to sama5_defconfig
ARM: at91: dt: add device tree file for SAMA5D4ek board
ARM: at91: dt: add device tree file for SAMA5D4 SoC
ARM: at91: SAMA5D4 SoC detection code and low level routines
ARM: at91: introduce basic SAMA5D4 support
clk: at91: add a driver for the h32mx clock
The soc2 branch is based on this cleanup:
* at91/soc:
ARM: at91: Remove the support for the RSI EWS board
ARM: at91: remove board file for Acme Systems Fox G20
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Pull "First AT91 SoC batch for 3.18" from Nicolas Ferre:
- removal of 2 board C files in mach-at91
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'at91-soc' of git://github.com/at91linux/linux-at91:
ARM: at91: Remove the support for the RSI EWS board
ARM: at91: remove board file for Acme Systems Fox G20
Pull "Clean-up for omaps for v3.18 merge window" from Tony Lindgren:
- Remove unused pieces of the legacy DMA API as we're moving to
dmaengine API
- Search and replace to standardize on pr_warn instead of pr_warning
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'cleanup-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
arm: mach-omap2: Convert pr_warning to pr_warn
ARM: OMAP: Remove unused pieces of legacy DMA API
Pull "part 2 of omap SoC changes" from Tony Lindgren:
Few hwmod changes to support upcoming 8250 driver with DMA,
start using the SRAM driver for some omaps, and update the
defconfig.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'soc-part2-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP4+: Remove static iotable mappings for SRAM
ARM: OMAP4+: Move SRAM data to DT
ARM: AM335x: Get rid of unused sram init function
ARM: omap2plus_defconfig: Enable some display features
ARM: omap2plus_defconfig: Enable battery and reset drivers
ARM: omap2plus_defconfig: Add support for distros with systemd
ARM: omap2plus_defconfig: Add cpufreq to defconfig
ARM: omap2plus_defconfig: Shrink with savedefconfig
ARM: OMAP3: Use manual idle for UARTs because of DMA errata
ARM: OMAP2+: Add hwmod flag for HWMOD_RECONFIG_IO_CHAIN
Merge "part 2 of omap intc changes" from Tony Lindgren:
Second part of omap intc interrupt controller changes to
move it to drivers.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'intc-part2-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
irqchip: omap-intc: remove unnecessary comments
irqchip: omap-intc: correct maximum number or MIR registers
irqchip: omap-intc: enable TURBO idle mode
irqchip: omap-intc: enable IP protection
irqchip: omap-intc: remove unnecesary of_address_to_resource() call
irqchip: omap-intc: comment style cleanup
irqchip: omap-intc: minor improvement to omap_irq_pending()
arm: omap: irq: move irq.c to drivers/irqchip/
irqchip: add irq-omap-intc.h header
arm: omap2: n8x0: move i2c devices to DT
... for V2M-P1 motherboard CLCD (limited to 640x480 16bpp and using
dedicated video RAM bank) and for V2P-CA9 (up to 1024x768 16bpp).
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Merge "ARM: BCM: Broadcom BCM63138 support" from Florian Fainelli:
This patchset adds very minimal support for the BCM63138 SoC which is
a xDSL SoC using a dual Cortex A9 CPU complex.
* tag 'bcm63138-v4' of http://github.com/brcm/linux:
MAINTAINERS: add entry for the Broadcom BCM63xx ARM SoCs
ARM: BCM63XX: add BCM963138DVT Reference platform DTS
ARM: BCM63XX: add BCM63138 minimal Device Tree
ARM: BCM63XX: add low-level UART debug support
ARM: BCM63XX: add basic support for the Broadcom BCM63138 DSL SoC
Conflicts:
arch/arm/Kconfig.debug
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Max_Read_Request_Size is 3 bits wide, not 2 bits.
Also fix the message.
Signed-off-by: Krzysztof Hałasa <khalasa@piap.pl>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Without this patch, each root port and the device connected directly to it seem
to be located on a shared (virtual) bus #0. It creates problems with enabling
devices (the PCI code doesn't know that the root bridge must be enabled in order
to access other devices).
The PCIe topology shown by lspci doesn't reflect reality, e.g.:
0000:00:00.0 PCI bridge: Cavium Networks Device 3400
0000:00:01.0 PCI bridge: Texas Instruments XIO2001 PCI Express-to-PCI Bridge
0000:02:...
0001:00:00.0 PCI bridge: Cavium Networks Device 3400 (for the second lane/bus)
-+-[0001:00]---00.0-[01]--
\-[0000:00]-+-00.0-[01]--
| ^^^^ root bridge
\-01.0-[02]----...
^^^^ first external device
With this patch, the first external PCIe device is connected to bus #1
(behind the root bridge).
-+-[0001:00]---00.0-[01]--
\-[0000:00]---00.0-[01-02]----------00.0-[02]----...
^^^^ root bridge ^^^^ first external device
Signed-off-by: Krzysztof Hałasa <khalasa@piap.pl>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
UARTs on CNS3xxx are 8250-compatible, not AMBA.
The base address for UART0 is 0x78000000 (physical)
and 0xfb002000 (virtual).
Signed-off-by: Krzysztof Hałasa <khalasa@piap.pl>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
It broke when host was moved into a separate module, in 47a1685 ("usb:
dwc2/s3c-hsotg: move s3c-hsotg into dwc2 directory"),
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Pull "Samsung cleanup for 3.18" from Kukjin Kim:
- remove unused <mach/memory.h> in exynos
- local <mach/regs-clock.h> for s5pv210
- cleanup boot address calculate for exynos
- remove separate restart code for s3c24xx
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'samsung-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
ARM: S3C24XX: remove separate restart code
ARM: EXYNOS: Do not calculate boot address twice
ARM: S5PV210: move <mach/regs-clock.h> into mach-s5pv210/
ARM: EXYNOS: remove unused <mach/memory.h>
Pull "Allwinner defconfig additions for 3.18" from Maxime Ripard
Nothing major, just a few drivers additions and misc options
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'sunxi-defconfig-for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
ARM: sunxi_defconfig: add NLS_CODEPAGE_437 and NLS_ISO8859_1
ARM: sunxi: Add A31 RTC driver to multi_v7_defconfig
ARM: sunxi: Add A31 RTC driver to sunxi_defconfig
Pull "Fifth Round of Renesas ARM Based SoC Soc Updates for v3.18" from Simon Horman:
* r8a7740: Fix documentation error copied from elsewhere
* r8a7794: Reserve memory for CMA in a manner consistent to
other R-Car Gen2 SoCs
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'renesas-soc5-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: r8a7740 legacy: Fix copied bug in comment
ARM: shmobile: r8a7794: Reserve memory as other R-Car Gen2 SoCs
Pull "Fifth Round of Renesas ARM Based SoC DT Updates for v3.18" from Simon Horman:
* Document manufacturer for KZM boards
* Use SoC-specific irqc compatible property
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'renesas-dt5-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
ARM: shmobile: Add manufacturer for KZM boards
ARM: shmobile: r8a73a4 dtsi: Add SoC-specific irqc compatible property
Pull "fix PXA3xx SSP naming issue" from Haojian Zhuang:
It's imported by 972a55b62 ASoC: fix pxa-ssp compiling issue under mach-mmp from v3.5
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'pxa3xx-ssp-name' of https://git.kernel.org/pub/scm/linux/kernel/git/hzhuang1/linux:
ARM: pxa3xx: provide specific platform_devices for all ssp ports
ARM: pxa: ssp: provide platform_device_id for PXA3xx
Pull "ARM: tegra: tegra_defconfig changes for 3.18" from Stephen Warren:
Support is enabled for Venice2's touchpad, and Tegra124's AHCI (SATA)
controller, as used on Jetson TK1.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'tegra-for-3.18-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
ARM: tegra: enable Atmel touchpad in defconfig
ARM: tegra: Add options for Tegra AHCI support to tegra_defconfig
Contains an update to 3.17-rc2.
Pull "ARM: tegra: device tree changes for 3.18" from Stephen Warren:
The main highlights are:
* SATA and PCIe support added to Tegra124, and enabled on Jetson TK1.
* Touchpad enabled on Venice2 (although the driver still has a few issues
to be worked out).
* NVIDIA reference boards rely on the bootloader to program the pinmux.
* Support added for the Acer Chromebook 13 (CB5).
* DT nodes added for the Tegra flow controller HW module. This will
help reduce use of iomap.h in a future code cleanup.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* tag 'tegra-for-3.18-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra:
ARM: tegra: enable PCIe in Jetson TK1 DT
ARM: tegra: add PCIe to Tegra124 DT
ARM: tegra: rely on bootloader pinmux programming on Tegra124
ARM: tegra: add Acer Chromebook 13 device tree
ARM: tegra: Move pwm and dpaux labels to tegra124.dtsi
ARM: tegra: add touchpad to Venice2 DT
ARM: tegra: Add device tree nodes for flow controller
ARM: tegra: add PCIe-related pins to the Jetson TK1 pinmux tables
ARM: tegra: Add SATA and SATA power to Jetson TK1 device tree
ARM: tegra: Add SATA controller to Tegra124 device tree