aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-06-06UPSTREAM: arm64: KVM: Implement vgic-v2 save/restoreMarc Zyngier
Implement the vgic-v2 save restore (mostly) as a direct translation of the assembly code version. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> (cherry picked from commit 06282fd2c2bf61619649a2b13e4a08556598a64c) Signed-off-by: Alex Shi <alex.shi@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: KVM: Add a HYP-specific header fileMarc Zyngier
In order to expose the various EL2 services that are private to the hypervisor, add a new hyp.h file. So far, it only contains mundane things such as section annotation and VA manipulation. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> (cherry picked from commit c76a0a6695c61088c8d2e731e25305502666bf7d) Signed-off-by: Alex Shi <alex.shi@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: KVM: arm/arm64: vgic-v3: Make the LR indexing macro publicMarc Zyngier
We store GICv3 LRs in reverse order so that the CPU can save/restore them in rever order as well (don't ask why, the design is crazy), and yet generate memory traffic that doesn't completely suck. We need this macro to be available to the C version of save/restore. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> (cherry picked from commit 3c13b8f435acb452eac62d966148a8b6fa92151f) Signed-off-by: Alex Shi <alex.shi@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: ARM: 8511/1: ARM64: kernel: PSCI: move PSCI idle management code ↵Lorenzo Pieralisi
to drivers/firmware ARM64 PSCI kernel interfaces that initialize idle states and implement the suspend API to enter them are generic and can be shared with the ARM architecture. To achieve that goal, this patch moves ARM64 PSCI idle management code to drivers/firmware, so that the interface to initialize and enter idle states can actually be shared by ARM and ARM64 arches back-ends. The ARM generic CPUidle implementation also requires the definition of a cpuidle_ops section entry for the kernel to initialize the CPUidle operations at boot based on the enable-method (ie ARM64 has the statically initialized cpu_ops counterparts for that purpose); therefore this patch also adds the required section entry on CONFIG_ARM for PSCI so that the kernel can initialize the PSCI CPUidle back-end when PSCI is the probed enable-method. On ARM64 this patch provides no functional change. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Acked-by: Catalin Marinas <catalin.marinas@arm.com> [arch/arm64] Acked-by: Mark Rutland <mark.rutland@arm.com> Tested-by: Jisheng Zhang <jszhang@marvell.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Sudeep Holla <sudeep.holla@arm.com> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Jisheng Zhang <jszhang@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 8b6f2499ac45d5a0ab2e4b6f9613ab3f60416be1) Signed-off-by: Alex Shi <alex.shi@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: ARM: 8481/2: drivers: psci: replace psci firmware callsJens Wiklander
Switch to use a generic interface for issuing SMC/HVC based on ARM SMC Calling Convention. Removes now the now unused psci-call.S. Acked-by: Will Deacon <will.deacon@arm.com> Reviewed-by: Mark Rutland <mark.rutland@arm.com> Tested-by: Mark Rutland <mark.rutland@arm.com> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit e679660dbb8347f275fe5d83a5dd59c1fb6c8e63) Signed-off-by: Alex Shi <alex.shi@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: ARM: 8510/1: rework ARM_CPU_SUSPEND dependenciesLorenzo Pieralisi
The code enabled by the ARM_CPU_SUSPEND config option is used by kernel subsystems for purposes that go beyond system suspend so its config entry should be augmented to take more default options into account and avoid forcing its selection to prevent dependencies override. To achieve this goal, this patch reworks the ARM_CPU_SUSPEND config entry and updates its default config value (by adding the BL_SWITCHER option to it) and its dependencies (ARCH_SUSPEND_POSSIBLE), so that the symbol is still selected by default by the subsystems requiring it and at the same time enforcing the dependencies correctly. Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 1b9bdf5c1661873a10e193b8cbb803a87fe5c4a1) Signed-off-by: Alex Shi <alex.shi@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: ARM: 8458/1: bL_switcher: add GIC dependencyArnd Bergmann
It is not possible to build the bL_switcher code if the GIC driver is disabled, because it relies on calling into some gic specific interfaces, and that would result in this build error: arch/arm/common/built-in.o: In function `bL_switch_to': :(.text+0x1230): undefined reference to `gic_get_sgir_physaddr' :(.text+0x1244): undefined reference to `gic_send_sgi' :(.text+0x1268): undefined reference to `gic_migrate_target' arch/arm/common/built-in.o: In function `bL_switcher_enable.part.4': :(.text.unlikely+0x2f8): undefined reference to `gic_get_cpu_id' This adds a Kconfig dependency to ensure we only build the big-little switcher if the GIC driver is present as well. Almost all ARMv7 platforms come with a GIC anyway, but it is possible to build a kernel that disables all platforms. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 6c044fecdf78be3fda159a5036bb33700cdd5e59) Signed-off-by: Alex Shi <alex.shi@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: Remove stack duplicating code from jprobesDavid A. Long
Because the arm64 calling standard allows stacked function arguments to be anywhere in the stack frame, do not attempt to duplicate the stack frame for jprobes handler functions. Documentation changes to describe this issue have been broken out into a separate patch in order to simultaneously address them in other architecture(s). Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> (cherry picked from commit ad05711cec12131e1277ce749a99d08ecf233aa7) Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: kprobes: Add KASAN instrumentation around stack accessesCatalin Marinas
commit f7e35c5ba4322838ce84b23a2f1a6d6b7f0b57ec upstream. This patch disables KASAN around the memcpy from/to the kernel or IRQ stacks to avoid warnings like below: BUG: KASAN: stack-out-of-bounds in setjmp_pre_handler+0xe4/0x170 at addr ffff800935cbbbc0 Read of size 128 by task swapper/0/1 page:ffff7e0024d72ec0 count:0 mapcount:0 mapping: (null) index:0x0 flags: 0x1000000000000000() page dumped because: kasan: bad access detected CPU: 4 PID: 1 Comm: swapper/0 Not tainted 4.7.0-rc4+ #1 Hardware name: ARM Juno development board (r0) (DT) Call trace: [<ffff20000808ad88>] dump_backtrace+0x0/0x280 [<ffff20000808b01c>] show_stack+0x14/0x20 [<ffff200008563a64>] dump_stack+0xa4/0xc8 [<ffff20000824a1fc>] kasan_report_error+0x4fc/0x528 [<ffff20000824a5e8>] kasan_report+0x40/0x48 [<ffff20000824948c>] check_memory_region+0x144/0x1a0 [<ffff200008249814>] memcpy+0x34/0x68 [<ffff200008c3ee2c>] setjmp_pre_handler+0xe4/0x170 [<ffff200008c3ec5c>] kprobe_breakpoint_handler+0xec/0x1d8 [<ffff2000080853a4>] brk_handler+0x5c/0xa0 [<ffff2000080813f0>] do_debug_exception+0xa0/0x138 Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: David A. Long <dave.long@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: kprobes: Cleanup jprobe_returnMarc Zyngier
commit 3b7d14e9f3f1efd4c4348800e977fd1ce4ca660e upstream. jprobe_return seems to have aged badly. Comments referring to non-existent behaviours, and a dangerous habit of messing with registers without telling the compiler. This patches applies the following remedies: - Fix the comments to describe the actual behaviour - Tidy up the asm sequence to directly assign the stack pointer without clobbering extra registers - Mark the rest of the function as unreachable() so that the compiler knows that there is no need for an epilogue - Stop making jprobe_return_break a global function (you really don't want to call that guy, and it isn't even a function). Tested with tcp_probe. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: David A. Long <dave.long@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: kprobes: Fix overflow when saving stackMarc Zyngier
The MIN_STACK_SIZE macro tries evaluate how much stack space needs to be saved in the jprobes_stack array, sized at 128 bytes. When using the IRQ stack, said macro can happily return up to IRQ_STACK_SIZE, which is 16kB. Mayhem follows. This patch fixes things by getting rid of the crazy macro and limiting the copy to be at most the size of the jprobes_stack array, no matter which stack we're on. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> (cherry picked from commit ab4c1325d4bf111a590a1f773e3d93bde7f40201) Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: kprobes: WARN if attempting to step with PSTATE.D=1Will Deacon
commit 44bd887ce10eb8061f6a137f8a73f823957edd82 upstream. Stepping with PSTATE.D=1 is bad news. The step won't generate a debug exception and we'll likely walk off into random data structures. This should never happen, but when it does, it's a PITA to debug. Add a WARN_ON to shout if we realise this is about to take place. Signed-off-by: Will Deacon <will.deacon@arm.com> Acked-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: David A. Long <dave.long@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: kprobes: Add arm64 case in kprobe example moduleSandeepa Prabhu
commit af78cede8bfc772baf424fc03f7cd3c8f9437733 upstream. Add info prints in sample kprobe handlers for ARM64 Signed-off-by: Sandeepa Prabhu <sandeepa.s.prabhu@gmail.com> Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: Add kernel return probes support (kretprobes)Sandeepa Prabhu
commit fcfd708b8cf86b8c1ca6ce014d50287f61c0eb88 upstream. The pre-handler of this special 'trampoline' kprobe executes the return probe handler functions and restores original return address in ELR_EL1. This way the saved pt_regs still hold the original register context to be carried back to the probed kernel function. Signed-off-by: Sandeepa Prabhu <sandeepa.s.prabhu@gmail.com> Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-06-06UPSTREAM: arm64: Add trampoline code for kretprobesWilliam Cohen
commit da6a91252ad98d49b49e83b76c1f032cdf6e5258 upstream. The trampoline code is used by kretprobes to capture a return from a probed function. This is done by saving the registers, calling the handler, and restoring the registers. The code then returns to the original saved caller return address. It is necessary to do this directly instead of using a software breakpoint because the code used in processing that breakpoint could itself be kprobe'd and cause a problematic reentry into the debug exception handler. Signed-off-by: William Cohen <wcohen@redhat.com> Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> [catalin.marinas@arm.com: removed unnecessary masking of the PSTATE bits] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: kprobes instruction simulation supportSandeepa Prabhu
commit 39a67d49ba353630d144a8eb775500c041c89e7a upstream. Kprobes needs simulation of instructions that cannot be stepped from a different memory location, e.g.: those instructions that uses PC-relative addressing. In simulation, the behaviour of the instruction is implemented using a copy of pt_regs. The following instruction categories are simulated: - All branching instructions(conditional, register, and immediate) - Literal access instructions(load-literal, adr/adrp) Conditional execution is limited to branching instructions in ARM v8. If conditions at PSTATE do not match the condition fields of opcode, the instruction is effectively NOP. Thanks to Will Cohen for assorted suggested changes. Signed-off-by: Sandeepa Prabhu <sandeepa.s.prabhu@gmail.com> Signed-off-by: William Cohen <wcohen@redhat.com> Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> [catalin.marinas@arm.com: removed linux/module.h include] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06BACKPORT: arm64: Treat all entry code as non-kprobe-ablePratyush Anand
commit 888b3c8720e0a4033db09ba2364afde6a4763638 upstream. Entry symbols are not kprobe safe. So blacklist them for kprobing. [dave.long@linaro.org: Remove check for hypervisor text] Signed-off-by: Pratyush Anand <panand@redhat.com> Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> [catalin.marinas@arm.com: Do not include syscall wrappers in .entry.text] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: Blacklist non-kprobe-able symbolPratyush Anand
commit 44b53f67c99d0fc53af3066a05d9e7ca5080a850 upstream. Add all function symbols which are called from do_debug_exception under NOKPROBE_SYMBOL, as they can not kprobed. Signed-off-by: Pratyush Anand <panand@redhat.com> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: David A. Long <dave.long@linaro.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06BACKPORT: arm64: Kprobes with single stepping supportSandeepa Prabhu
Add support for basic kernel probes(kprobes) and jump probes (jprobes) for ARM64. Kprobes utilizes software breakpoint and single step debug exceptions supported on ARM v8. A software breakpoint is placed at the probe address to trap the kernel execution into the kprobe handler. ARM v8 supports enabling single stepping before the break exception return (ERET), with next PC in exception return address (ELR_EL1). The kprobe handler prepares an executable memory slot for out-of-line execution with a copy of the original instruction being probed, and enables single stepping. The PC is set to the out-of-line slot address before the ERET. With this scheme, the instruction is executed with the exact same register context except for the PC (and DAIF) registers. Debug mask (PSTATE.D) is enabled only when single stepping a recursive kprobe, e.g.: during kprobes reenter so that probed instruction can be single stepped within the kprobe handler -exception- context. The recursion depth of kprobe is always 2, i.e. upon probe re-entry, any further re-entry is prevented by not calling handlers and the case counted as a missed kprobe). Single stepping from the x-o-l slot has a drawback for PC-relative accesses like branching and symbolic literals access as the offset from the new PC (slot address) may not be ensured to fit in the immediate value of the opcode. Such instructions need simulation, so reject probing them. Instructions generating exceptions or cpu mode change are rejected for probing. Exclusive load/store instructions are rejected too. Additionally, the code is checked to see if it is inside an exclusive load/store sequence (code from Pratyush). System instructions are mostly enabled for stepping, except MSR/MRS accesses to "DAIF" flags in PSTATE, which are not safe for probing. This also changes arch/arm64/include/asm/ptrace.h to use include/asm-generic/ptrace.h. Thanks to Steve Capper and Pratyush Anand for several suggested Changes. Signed-off-by: Sandeepa Prabhu <sandeepa.s.prabhu@gmail.com> Signed-off-by: David A. Long <dave.long@linaro.org> Signed-off-by: Pratyush Anand <panand@redhat.com> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> (cherry picked from commit 2dd0e8d2d2a157dbc83295a78336c2217110f2f8) Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Conflicts: arch/arm64/kernel/debug-monitors.c
2017-06-06UPSTREAM: arm64: add conditional instruction simulation supportDavid A. Long
commit 2af3ec08b414ceb9c32fad2bb0f87252f3f18de8 upstream. Cease using the arm32 arm_check_condition() function and replace it with a local version for use in deprecated instruction support on arm64. Also make the function table used by this available for future use by kprobes and/or uprobes. This function is derived from code written by Sandeepa Prabhu. Signed-off-by: Sandeepa Prabhu <sandeepa.s.prabhu@gmail.com> Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: Add more test functions to insn.cDavid A. Long
commit d59bee887231191c80f2ee674d7ec19179eb40ec upstream. Certain instructions are hard to execute correctly out-of-line (as in kprobes). Test functions are added to insn.[hc] to identify these. The instructions include any that use PC-relative addressing, change the PC, or change interrupt masking. For efficiency and simplicity test functions are also added for small collections of related instructions. Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-06-06UPSTREAM: arm64: Add HAVE_REGS_AND_STACK_ACCESS_API featureDavid A. Long
Add HAVE_REGS_AND_STACK_ACCESS_API feature for arm64, including supporting functions and defines. Signed-off-by: David A. Long <dave.long@linaro.org> Acked-by: Masami Hiramatsu <mhiramat@kernel.org> [catalin.marinas@arm.com: Remove unused functions] Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> (cherry picked from commit 0a8ea52c3eb157dd65e224fc95b7c9c99fcba9f7) Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-05-30kirin: Enable pcie enumerationSong Xiaowei
Change-Id: Ia80e40d6c60700c00aa9999cb5e5187423f2fc80 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2017-05-30Merge "kirin_fbdev: Eat FBIO_WAITFORVSYNC ioctl to avoid errors" into ↵Treehugger Robot
android-hikey-linaro-4.4
2017-05-26kirin_fbdev: Eat FBIO_WAITFORVSYNC ioctl to avoid errorsYu GONG
Since nobody handle the response from ioctl command FBIO_WAITFORVSYNC, the driver ignores the command to avoid "unsupported" error log. Signed-off-by: Yu GONG <gongyu@hisilicon.com>
2017-05-26MALI: mali-hikey: ignore and cleanup build productsMark Salyzyn
__malidrv_build_info.c is a build product Signed-off-by: Mark Salyzyn <salyzyn@google.com> Change-Id: Ib777ed2a02145b04b552251fcd3ff9356b2172ad
2017-05-23hikey960_defconfig: Remove interactive cpufreq govJohn Stultz
On the HiKey960 we want to use sched gov not the interactive cpufreq gov. Having this enabled confuses the powerHAL. Change-Id: I9633c65eec210648021340159b00640fa185f4d9 Signed-off-by: John Stultz <john.stultz@linaro.org>
2017-05-23mailbox: handle empty message in tx_tickSudeep Holla
[ Upstream commit cb710ab1d8a23f68ff8f45aedf3e552bb90e70de ] We already check if the message is empty before calling the client tx_done callback. Calling completion on a wait event is also invalid if the message is empty. This patch moves the existing empty message check earlier. Change-Id: I59aac3b2c133fecf2fb9e7746fa5ec72f391288c Fixes: 2b6d83e2b8b7 ("mailbox: Introduce framework for mailbox") Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2017-05-23mailbox: skip complete wait event if timer expiredSudeep Holla
[ Upstream commit cc6eeaa3029a6dbcb4ad41b1f92876483bd88965 ] If a wait_for_completion_timeout() call returns due to a timeout, complete() can get called after returning from the wait which is incorrect and can cause subsequent transmissions on a channel to fail. Since the wait_for_completion_timeout() sees the completion variable is non-zero caused by the erroneous/spurious complete() call, and it immediately returns without waiting for the time as expected by the client. This patch fixes the issue by skipping complete() call for the timer expiry. Change-Id: Ifd27aa51f3bb4186010a30a1988355492113f8db Fixes: 2b6d83e2b8b7 ("mailbox: Introduce framework for mailbox") Reported-by: Alexey Klimov <alexey.klimov@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2017-05-23mailbox: always wait in mbox_send_message for blocking Tx modeSudeep Holla
[ Upstream commit c61b781ee084e69855477d23dd33e7e6caad652c ] There exists a race when msg_submit return immediately as there was an active request being processed which may have completed just before it's checked again in mbox_send_message. This will result in return to the caller without waiting in mbox_send_message even when it's blocking Tx. This patch fixes the issue by waiting for the completion always if Tx is in blocking mode. Change-Id: Ied20ee933ae4e0c1d199e373d112cdef370f2815 Fixes: 2b6d83e2b8b7 ("mailbox: Introduce framework for mailbox") Reported-by: Alexey Klimov <alexey.klimov@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Reviewed-by: Alexey Klimov <alexey.klimov@arm.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org> Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23hikey960_defconfig: enable thermal driverLeo Yan
This patch is to add config for Hi3660 thermal driver. Change-Id: I91ba9072dad9eaac6cb5a4c4fc7ace7247400357 Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23dts: arm64: add thermal sensor node for Hi3660Leo Yan
This patch is to add thermal sensor node in DT; also add thermal zone to bind thermal sensor with CPU cooling device, for supporting thermal IPA governor this patch adds 'sustainable-power', 'dynamic coefficient' and 'weight' parameters. Change-Id: I035d1555fb4bd42a6b06c91cb2e57475ffde8273 Signed-off-by: Tao Wang <jean.wangtao@linaro.org> Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23thermal: Hi3660: add thermal driverLeo Yan
This patch is to add thermal driver for Hi3660, the thermal driver is to read temperature value from MCU by using mailbox. Change-Id: Ibbd2da63c0b34e0a8dfa990509465e0fc9044855 Signed-off-by: Tao Wang <jean.wangtao@linaro.org> Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23mailbox: Hi3660: add support for async modeLeo Yan
This patch is to expand the mailbox driver to support async mode so it can use interrupt to notify the transferring completion. This mode is used by thermal driver. Change-Id: I727a775907eb7be5023ba0da5c7350f7cde58374 Signed-off-by: Tao Wang <jean.wangtao@linaro.org> Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23clk: Hi3660: read frequency from shared memoryTao Wang
After send message to MCU to change the frequency, the MCU writes the real frequency value into the shared memory. So this patch is to read back the frequency value for CPU, DDR and GPU from shared memory. Change-Id: Icc25fcf8675b06f4b7586e4cda03164d606199a7 Signed-off-by: Tao Wang <jean.wangtao@linaro.org> Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23dts: arm64: Hi3660: enable cluster0 idle stateLeo Yan
Hisilicon releases new MCU firmware, which can resolve hang issue after enable cluster level low power state. This dependency patch is included in the repo: github.com/96boards-hikey/tools-images-hikey960; the commit id is 9891e5c9ed9a ("fastboot.img: lpm3: sec_xloader: updated to fix graphics performance issue"). So make sure the Hisilicon firmware has been updated to latest version. Change-Id: Ic01c67152315a10cba7c6ed090ba947eb883ea86 Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23clk: hisilicon: Hi3660: correct clock idLeo Yan
In the old code only allocates one clock id for total 4 clocks, as result when we refer wrongly to DDR clock when execute CPU frequency change. This patch is to assign dedicated clock id for every clock, so finally we can use clock node + clock id in DT to bind CPU clock correctly. Change-Id: I99ad504c269a35ff154fddddd1e743c25f41b555 Signed-off-by: Leo Yan <leo.yan@linaro.org>
2017-05-23MALI: Fix userpointer accessJohn Stultz
Some code in the mali driver was accessing user pointers directly instead using the reference that has been copied already. This changes the access to use the already copied over reference. Change-Id: Iff5f2adb54b005c2fdd3c3f79680731a2d9627f1 Signed-off-by: John Stultz <john.stultz@linaro.org>
2017-05-23MALI: drivers/gpu/arm/utgard: Disable fbdev physical address checkxinliang.liu
hikey don't specific the base of fbdev reserve memery. The reserve mememery is allocate dymanic, so it doesn't need a check. Change-Id: I1b5dc847301e2ee06630426e7372b5131bfb1ae5 Signed-off-by: xinliang.liu <xinliang.liu@linaro.org>
2017-05-23MALI: utgard ddk support for Hikey with kernel 4.9Luffy Yuan
Patch originally by Luffy Yuan, which re-adds the mali_internal_sync logic and fixes the timeline and sync code to work with the new dmabuf fences. Even though we don't use the 4.9 dmabuf fences here changes in this patch fix other build issues against the 4.4 kernel. Change-Id: I8f7ca6acfd34c88dcca260009cd26bfbbfccb6f2 Signed-off-by: John Stultz <john.stultz@linaro.org>
2017-05-23MALI: Update from r6p0 driver to r7p0-00rel1John Stultz
Updates from the r6p0 driver to the DX910-SW-99002-r7p0-00rel1.tgz from https://developer.arm.com/products/software/mali-drivers/utgard-kernel Change-Id: I6c1cb6b95aeb9cd1e952693598b4955176b8d210 Signed-off-by: John Stultz <john.stultz@linaro.org>
2017-05-22Merge remote-tracking branch 'common/android-4.4' into ↵Dmitry Shmidt
android-hikey-linaro-4.4-aosp Change-Id: I25688a894f9ebb1b9928d5a933ba40a56a43e762
2017-05-21Merge 4.4.69 into android-4.4Greg Kroah-Hartman
Changes in 4.4.69 xen: adjust early dom0 p2m handling to xen hypervisor behavior target: Fix compare_and_write_callback handling for non GOOD status target/fileio: Fix zero-length READ and WRITE handling target: Convert ACL change queue_depth se_session reference usage iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement usb: host: xhci: print correct command ring address USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit USB: Proper handling of Race Condition when two USB class drivers try to call init_usb_class simultaneously staging: vt6656: use off stack for in buffer USB transfers. staging: vt6656: use off stack for out buffer USB transfers. staging: gdm724x: gdm_mux: fix use-after-free on module unload staging: comedi: jr3_pci: fix possible null pointer dereference staging: comedi: jr3_pci: cope with jiffies wraparound usb: misc: add missing continue in switch usb: Make sure usb/phy/of gets built-in usb: hub: Fix error loop seen after hub communication errors usb: hub: Do not attempt to autosuspend disconnected devices x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug x86, pmem: Fix cache flushing for iovec write < 8 bytes um: Fix PTRACE_POKEUSER on x86_64 KVM: x86: fix user triggerable warning in kvm_apic_accept_events() KVM: arm/arm64: fix races in kvm_psci_vcpu_on block: fix blk_integrity_register to use template's interval_exp if not 0 crypto: algif_aead - Require setkey before accept(2) dm era: save spacemap metadata root after the pre-commit vfio/type1: Remove locked page accounting workqueue IB/core: Fix sysfs registration error flow IB/IPoIB: ibX: failed to create mcg debug file IB/mlx4: Fix ib device initialization error flow IB/mlx4: Reduce SRIOV multicast cleanup warning message to debug level ext4: evict inline data when writing to memory map fs/xattr.c: zero out memory copied to userspace in getxattr ceph: fix memory leak in __ceph_setxattr() fs/block_dev: always invalidate cleancache in invalidate_bdev() Set unicode flag on cifs echo request to avoid Mac error SMB3: Work around mount failure when using SMB3 dialect to Macs CIFS: fix mapping of SFM_SPACE and SFM_PERIOD cifs: fix CIFS_IOC_GET_MNT_INFO oops CIFS: add misssing SFM mapping for doublequote padata: free correct variable arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses serial: samsung: Use right device for DMA-mapping calls serial: omap: fix runtime-pm handling on unbind serial: omap: suspend device on probe errors tty: pty: Fix ldisc flush after userspace become aware of the data already Bluetooth: Fix user channel for 32bit userspace on 64bit kernel Bluetooth: hci_bcm: add missing tty-device sanity check Bluetooth: hci_intel: add missing tty-device sanity check mac80211: pass RX aggregation window size to driver mac80211: pass block ack session timeout to to driver mac80211: RX BA support for sta max_rx_aggregation_subframes wlcore: Pass win_size taken from ieee80211_sta to FW wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT event ipmi: Fix kernel panic at ipmi_ssif_thread() Linux 4.4.69 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-05-20Linux 4.4.69Greg Kroah-Hartman
2017-05-20ipmi: Fix kernel panic at ipmi_ssif_thread()Joeseph Chang
commit 6de65fcfdb51835789b245203d1bfc8d14cb1e06 upstream. msg_written_handler() may set ssif_info->multi_data to NULL when using ipmitool to write fru. Before setting ssif_info->multi_data to NULL, add new local pointer "data_to_send" and store correct i2c data pointer to it to fix NULL pointer kernel panic and incorrect ssif_info->multi_pos. Signed-off-by: Joeseph Chang <joechang@codeaurora.org> Signed-off-by: Corey Minyard <cminyard@mvista.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-20wlcore: Add RX_BA_WIN_SIZE_CHANGE_EVENT eventMaxim Altshul
commit e7ee74b56f23ba447d3124f2eccc32033cca501d upstream. This event is used by the Firmware to limit the RX BA win size for a specific link. The event handler updates the new size in the mac's sta->sta struct. BA sessions opened for that link will use the new restricted win_size. This limitation remains until a new update is received or until the link is closed. Signed-off-by: Maxim Altshul <maxim.altshul@ti.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> [AmitP: Minor refactoring for linux-4.4.y] Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-20wlcore: Pass win_size taken from ieee80211_sta to FWMaxim Altshul
commit 42c7372a111630dab200c2f959424f5ec3bf79a4 upstream. When starting a new BA session, we must pass the win_size to the FW. To do this we take max_rx_aggregation_subframes (BA RX win size) which is stored in ieee80211_sta structure (e.g per link and not per HW) We will use the value stored per link when passing the win_size to firmware through the ACX_BA_SESSION_RX_SETUP command. Signed-off-by: Maxim Altshul <maxim.altshul@ti.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-20mac80211: RX BA support for sta max_rx_aggregation_subframesMaxim Altshul
commit 480dd46b9d6812e5fb7172c305ee0f1154c26eed upstream. The ability to change the max_rx_aggregation frames is useful in cases of IOP. There exist some devices (latest mobile phones and some AP's) that tend to not respect a BA sessions maximum size (in Kbps). These devices won't respect the AMPDU size that was negotiated during association (even though they do respect the maximal number of packets). This violation is characterized by a valid number of packets in a single AMPDU. Even so, the total size will exceed the size negotiated during association. Eventually, this will cause some undefined behavior, which in turn causes the hw to drop packets, causing the throughput to plummet. This patch will make the subframe limitation to be held by each station, instead of being held only by hw. Signed-off-by: Maxim Altshul <maxim.altshul@ti.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-20mac80211: pass block ack session timeout to to driverSara Sharon
commit 50ea05efaf3bed7dd34bcc2635a8b3f53bd0ccc1 upstream. Currently mac80211 does not inform the driver of the session block ack timeout when starting a rx aggregation session. Drivers that manage the reorder buffer need to know this parameter. Seeing that there are now too many arguments for the drv_ampdu_action() function, wrap them inside a structure. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-20mac80211: pass RX aggregation window size to driverSara Sharon
commit fad471860c097844432c7cf5d3ae6a0a059c2bdc upstream. Currently mac80211 does not inform the driver of the window size when starting an RX aggregation session. To enable managing the reorder buffer in the driver or hardware the window size is needed. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>