Age | Commit message (Collapse) | Author |
|
This is a preliminary patch which adds support for the
global clock controller found on the MSM8916 based devices.
It allows the various device drivers to probe and control
their clocks.
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
Commit 1a6b69b6548c (ARM: gic: add CPU migration support,
2012-04-12) introduced an acquisition of the irq_controller_lock
in gic_raise_softirq() which can lead to a spinlock recursion if
the gic_arch_extn hooks call into the scheduler (via complete()
or wake_up(), etc.). This happens because gic_arch_extn hooks are
normally called with the irq_controller_lock held and calling
into the scheduler may cause us to call smp_send_reschedule()
which will grab the irq_controller_lock again. Here's an example
from a vendor kernel (note that the gic_arch_extn hook code here
isn't actually in mainline):
BUG: spinlock recursion on CPU#0, swapper/0/1
lock: irq_controller_lock+0x0/0x18, .magic: dead4ead, .owner: sw
er_cpu: 0
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.10-00430-g3d433c4e
Call trace:
[<ffffffc000087e1c>] dump_backtrace+0x0/0x140
[<ffffffc000087f6c>] show_stack+0x10/0x1c
[<ffffffc00064732c>] dump_stack+0x74/0xc4
[<ffffffc0006446c0>] spin_dump+0x78/0x88
[<ffffffc0006446f4>] spin_bug+0x24/0x34
[<ffffffc0000d47d0>] do_raw_spin_lock+0x58/0x148
[<ffffffc00064d398>] _raw_spin_lock_irqsave+0x24/0x38
[<ffffffc0002c9d7c>] gic_raise_softirq+0x2c/0xbc
[<ffffffc00008daa4>] smp_send_reschedule+0x34/0x40
[<ffffffc0000c1e94>] try_to_wake_up+0x224/0x288
[<ffffffc0000c1f4c>] default_wake_function+0xc/0x18
[<ffffffc0000ceef0>] __wake_up_common+0x50/0x8c
[<ffffffc0000cef3c>] __wake_up_locked+0x10/0x1c
[<ffffffc0000cf734>] complete+0x3c/0x5c
[<ffffffc0002f0e78>] msm_mpm_enable_irq_exclusive+0x1b8/0x1c8
[<ffffffc0002f0f58>] __msm_mpm_enable_irq+0x4c/0x7c
[<ffffffc0002f0f94>] msm_mpm_enable_irq+0xc/0x18
[<ffffffc0002c9bb0>] gic_unmask_irq+0x40/0x7c
[<ffffffc0000de5f4>] irq_enable+0x2c/0x48
[<ffffffc0000de65c>] irq_startup+0x4c/0x74
[<ffffffc0000dd2fc>] __setup_irq+0x264/0x3f0
[<ffffffc0000dd5e0>] request_threaded_irq+0xcc/0x11c
[<ffffffc0000df254>] devm_request_threaded_irq+0x68/0xb4
[<ffffffc000471520>] msm_iommu_ctx_probe+0x124/0x2d4
[<ffffffc000337374>] platform_drv_probe+0x20/0x54
[<ffffffc00033598c>] driver_probe_device+0x158/0x340
[<ffffffc000335c20>] __driver_attach+0x60/0x90
[<ffffffc000333c9c>] bus_for_each_dev+0x6c/0x8c
[<ffffffc000335304>] driver_attach+0x1c/0x28
[<ffffffc000334f14>] bus_add_driver+0x120/0x204
[<ffffffc0003362e4>] driver_register+0xbc/0x10c
[<ffffffc000337348>] __platform_driver_register+0x5c/0x68
[<ffffffc00094c478>] msm_iommu_driver_init+0x54/0x7c
[<ffffffc0000813ec>] do_one_initcall+0xa4/0x130
[<ffffffc00091d928>] kernel_init_freeable+0x138/0x1dc
[<ffffffc000642578>] kernel_init+0xc/0xd4
We really just want to synchronize the sending of an SGI with the
update of the gic_cpu_map[], so introduce a new SGI lock that we
can use to synchronize the two code paths.
Cc: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the cpu_pwr_ctl.c file as of msm-3.10
commit:
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64:
Enable ONESHOT_SYNC for msm8994")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the idle-v8.S code as of msm-3.10 commit:
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64:
Enable ONESHOT_SYNC for msm8994")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the pm-boot code as of msm-3.10 commit:
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64:
Enable ONESHOT_SYNC for msm8994")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the LPM driver as of msm-3.10 commit:
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64:
Enable ONESHOT_SYNC for msm8994")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the SPM driver as of msm-3.10 commit:
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64:
Enable ONESHOT_SYNC for msm8994")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
When using the board-file probe order optimizations, the following
sequence is executed early on kernel boot:
- msm_smd_init()
- msm_rpm_smd_init()
When msm_smd_init() is invoked, it sets up it's data structures and then
invokes smd_post_init(), which places the probe work item in the
workqueue.
However, it's possible that msm_rpm_smd_init() is executed before SMD's
probe work is even invoked. In this case, the rpm-smd driver requests
access to the 'rpm_requests' channel, but because the SMD channels have
yet to be scanned, it does not exist.
Workaround this issue by forcing channel scanning to happen immediately
in msm_smd_post_init().
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
Add msm cpu operations for arm-v8 cpus. Implement
secondary cpu boot ops and a simple wfi based hotplug
call-back. As a part of this change update device tree
documentation for:
1. Arm cortex-a ACC device which provides percpu reg
2. Armv8 cortex-a compatible string in arm/cpus.txt
Change-Id: I2a26b3a30cd6689db791ee850652d96823e9849f
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of drivers/power/qcom/no-pm.c and relevant headers as
of msm-3.10 commit
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable
ONESHOT_SYNC for msm8994")
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of scm as of msm-3.14 commit
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the RPM SMD regulator driver as of msm-3.10 commit
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable
ONESHOT_SYNC for msm8994")
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the RPM-SMD driver as of msm-3.10 commit
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable
ONESHOT_SYNC for msm8994")
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the SMD driver as of msm-3.10 commit
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable
ONESHOT_SYNC for msm8994")
In addition, replace INIT_COMPLETION() with reinit_completion(), as
INIT_COMPLETION has gone away upstream.
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of the SMEM driver as of msm-3.10 commit
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable
ONESHOT_SYNC for msm8994")
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
This is a snapshot of drivers/hwspinlock/msm_remote_spinlock.c and
related files as of msm-3.10 commit
acdce027751d5a7488b283f0ce3111f873a5816d (Merge "defconfig: arm64: Enable
ONESHOT_SYNC for msm8994")
Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
|
|
Currently, memsetting and kfreeing the device is bad behaviour. The
device will have a reference count of 1 and hence can cause trouble
because it has kfree'd. Proper way to handle a failed device_register is
to call put_device right after it fails.
Signed-off-by: Levente Kurusa <levex@linux.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
|
Conflicts:
Documentation/kasan.txt
arch/powerpc/kernel/time.c
arch/x86/Kconfig
drivers/block/zram/zram_drv.c
drivers/rtc/Makefile
include/linux/mm.h
init/Kconfig
kernel/fork.c
lib/Makefile
mm/filemap_xip.c
mm/slab_common.c
mm/slub.c
mm/swap.c
mm/vmscan.c
scripts/Makefile.kasan
scripts/module-common.lds
|
|
|
|
Conflicts:
arch/arm/mach-omap2/cclock3xxx_data.c
arch/arm/mach-omap2/io.c
|
|
|
|
|
|
Conflicts:
drivers/vhost/scsi.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
drivers/watchdog/Makefile
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
drivers/infiniband/hw/mlx4/main.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
arch/mips/kernel/elf.c
arch/mips/pci/pci-bcm1480.c
arch/mips/pci/pci-octeon.c
arch/mips/pci/pcie-octeon.c
|
|
Conflicts:
drivers/mmc/host/sunxi-mmc.c
|