summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2015-02-19clk: qcom: Add MSM8916 Global Clock Controller supportGeorgi Djakov
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>
2015-02-19irqchip: gic: Allow gic_arch_extn hooks to call into schedulerStephen Boyd
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>
2015-02-19soc: Add cpu_pwr_ctl snapshotStephen Boyd
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>
2015-02-19soc: Add idle-v8.SStephen Boyd
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>
2015-02-19power: qcom: snapshot qcom pm-boot codeStephen Boyd
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>
2015-02-19cpuidle: Add snapshot of lpm-levelsStephen Boyd
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>
2015-02-19soc: qcom: add snapshot of spm-v2.c driver - build fixKumar Gala
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
2015-02-19soc: qcom: add snapshot of spm-v2.c driverStephen Boyd
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>
2015-02-19smd: perform SMD channel scanning synchronously at probeJosh Cartwright
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>
2015-02-19arm64: msm: add cpu operationsAbhimanyu Kapur
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>
2015-02-19power: qcom: add no-pm stub implementationJosh Cartwright
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>
2015-02-19soc: qcom: add snapshot of scmKumar Gala
This is a snapshot of scm as of msm-3.14 commit Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
2015-02-19regulator: add support for RPM SMD regulator - build fixKumar Gala
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
2015-02-19regulator: add support for RPM SMD regulatorJosh Cartwright
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>
2015-02-19soc: qcom: add RPM SMD driverJosh Cartwright
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>
2015-02-19soc: qcom: add support for SMDJosh Cartwright
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>
2015-02-19qcom: add support for SMEMJosh Cartwright
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>
2015-02-19hwspinlock: msm: add hardware spinlock supportJosh Cartwright
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>
2015-02-19drivers/w1/w1_int.c: call put_device if device_register failsLevente Kurusa
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>
2015-02-19Merge branch 'akpm-current/current'Stephen Rothwell
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
2015-02-19Merge remote-tracking branch 'y2038/y2038'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'clk/clk-next'Stephen Rothwell
Conflicts: arch/arm/mach-omap2/cclock3xxx_data.c arch/arm/mach-omap2/io.c
2015-02-19Merge remote-tracking branch 'dma-buf/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'gpio/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'target-updates/for-next'Stephen Rothwell
Conflicts: drivers/vhost/scsi.c
2015-02-19Merge remote-tracking branch 'scsi/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'ipmi/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'leds/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'hsi/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'regmap/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'drivers-x86/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'vfio/next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'watchdog/master'Stephen Rothwell
Conflicts: drivers/watchdog/Makefile
2015-02-19Merge remote-tracking branch 'regulator/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'battery/master'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'backlight/for-backlight-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'device-mapper/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'input/next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'drm-panel/drm/panel/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'infiniband/for-next'Stephen Rothwell
Conflicts: drivers/infiniband/hw/mlx4/main.c
2015-02-19Merge remote-tracking branch 'bluetooth/master'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'thermal-soc/next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'thermal/next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'pm/linux-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'kbuild/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'v4l-dvb/master'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'i2c/i2c/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'vfs/for-next'Stephen Rothwell
2015-02-19Merge remote-tracking branch 'mips/mips-for-linux-next'Stephen Rothwell
Conflicts: arch/mips/kernel/elf.c arch/mips/pci/pci-bcm1480.c arch/mips/pci/pci-octeon.c arch/mips/pci/pcie-octeon.c
2015-02-19Merge remote-tracking branch 'sunxi/sunxi/for-next'Stephen Rothwell
Conflicts: drivers/mmc/host/sunxi-mmc.c