mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-05 13:25:20 +02:00

* Support for various vector-accelerated crypto routines. * Hibernation is now enabled for portable kernel builds. * mmap_rnd_bits_max is larger on systems with larger VAs. * Support for fast GUP. * Support for membarrier-based instruction cache synchronization. * Support for the Andes hart-level interrupt controller and PMU. * Some cleanups around unaligned access speed probing and Kconfig settings. * Support for ACPI LPI and CPPC. * Various cleanus related to barriers. * A handful of fixes. -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEKzw3R0RoQ7JKlDp6LhMZ81+7GIkFAmX9icgTHHBhbG1lckBk YWJiZWx0LmNvbQAKCRAuExnzX7sYib+UD/4xyL6UMixx6A06BVBL9UT4vOrxRvNr JIihG5y5QNMjes9DHWL35mZTMqFtQ0tq94ViWFLmJWloV/8KRVM2C9R9KX7vplf3 M/OwvP106spxgvNHoeQbycgs42RU1t2mpqT7N1iK2hCjqieP3vLn6hsSLXWTAG0L 3gQbQw6XCLC3hPyLq+nbFY2i4faeCmpXWmixoy/IvQ5calZQrRU0LNlP6lcMBhVo uocjG0uGAhrahw2s81jxcMZcxa3AvUCiplapdD5H5v9rBM85SkYJj2Q9SqdSorkb xzuimRnKPI5s47yM3pTfZY0qnQUYHV7PXXuw4WujpCQVQdhaG+Ggq63UUZA61J9t IzZK2zdcfHqICrGTtXImUzRT3dcc3oq+IFq4tTY+rEJm29hrXkAtx+qBm5xtMvax fJz5feJ/iT0u7MDj4Oq24n+Kpl+Olm+MJaZX3m5Ovi/9V6a9iK9HXqxg9/Fs0fMO +J/0kTgd8Vu9CYH7KNWz3uztcO9eMAH3VyzuXuab4BGj1i1Y/9EjpALQi7rDN73S OsYQX6NnzMkBV4dvElJVLXiPlvNlMHZZwdak5CqPb48jaJu6iiIZAuvOrG6/naGP wnQSLVA2WWWoOkl3AJhxfpa11CLhbMl9E2gYm1VtNvASXoSFIxlAq1Yv3sG8yjty 4ZT0rYFJOstYiQ== =3dL5 -----END PGP SIGNATURE----- Merge tag 'riscv-for-linus-6.9-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux Pull RISC-V updates from Palmer Dabbelt: - Support for various vector-accelerated crypto routines - Hibernation is now enabled for portable kernel builds - mmap_rnd_bits_max is larger on systems with larger VAs - Support for fast GUP - Support for membarrier-based instruction cache synchronization - Support for the Andes hart-level interrupt controller and PMU - Some cleanups around unaligned access speed probing and Kconfig settings - Support for ACPI LPI and CPPC - Various cleanus related to barriers - A handful of fixes * tag 'riscv-for-linus-6.9-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (66 commits) riscv: Fix syscall wrapper for >word-size arguments crypto: riscv - add vector crypto accelerated AES-CBC-CTS crypto: riscv - parallelize AES-CBC decryption riscv: Only flush the mm icache when setting an exec pte riscv: Use kcalloc() instead of kzalloc() riscv/barrier: Add missing space after ',' riscv/barrier: Consolidate fence definitions riscv/barrier: Define RISCV_FULL_BARRIER riscv/barrier: Define __{mb,rmb,wmb} RISC-V: defconfig: Enable CONFIG_ACPI_CPPC_CPUFREQ cpufreq: Move CPPC configs to common Kconfig and add RISC-V ACPI: RISC-V: Add CPPC driver ACPI: Enable ACPI_PROCESSOR for RISC-V ACPI: RISC-V: Add LPI driver cpuidle: RISC-V: Move few functions to arch/riscv riscv: Introduce set_compat_task() in asm/compat.h riscv: Introduce is_compat_thread() into compat.h riscv: add compile-time test into is_compat_task() riscv: Replace direct thread flag check with is_compat_task() riscv: Improve arch_get_mmap_end() macro ...
63 lines
1.8 KiB
C
63 lines
1.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (c) 2021 Western Digital Corporation or its affiliates.
|
|
* Copyright (c) 2022 Ventana Micro Systems Inc.
|
|
*/
|
|
|
|
#ifndef _ASM_RISCV_SUSPEND_H
|
|
#define _ASM_RISCV_SUSPEND_H
|
|
|
|
#include <asm/ptrace.h>
|
|
|
|
struct suspend_context {
|
|
/* Saved and restored by low-level functions */
|
|
struct pt_regs regs;
|
|
/* Saved and restored by high-level functions */
|
|
unsigned long scratch;
|
|
unsigned long envcfg;
|
|
unsigned long tvec;
|
|
unsigned long ie;
|
|
#ifdef CONFIG_MMU
|
|
unsigned long satp;
|
|
#endif
|
|
};
|
|
|
|
/*
|
|
* Used by hibernation core and cleared during resume sequence
|
|
*/
|
|
extern int in_suspend;
|
|
|
|
/* Low-level CPU suspend entry function */
|
|
int __cpu_suspend_enter(struct suspend_context *context);
|
|
|
|
/* High-level CPU suspend which will save context and call finish() */
|
|
int cpu_suspend(unsigned long arg,
|
|
int (*finish)(unsigned long arg,
|
|
unsigned long entry,
|
|
unsigned long context));
|
|
|
|
/* Low-level CPU resume entry function */
|
|
int __cpu_resume_enter(unsigned long hartid, unsigned long context);
|
|
|
|
/* Used to save and restore the CSRs */
|
|
void suspend_save_csrs(struct suspend_context *context);
|
|
void suspend_restore_csrs(struct suspend_context *context);
|
|
|
|
/* Low-level API to support hibernation */
|
|
int swsusp_arch_suspend(void);
|
|
int swsusp_arch_resume(void);
|
|
int arch_hibernation_header_save(void *addr, unsigned int max_size);
|
|
int arch_hibernation_header_restore(void *addr);
|
|
int __hibernate_cpu_resume(void);
|
|
|
|
/* Used to resume on the CPU we hibernated on */
|
|
int hibernate_resume_nonboot_cpu_disable(void);
|
|
|
|
asmlinkage void hibernate_restore_image(unsigned long resume_satp, unsigned long satp_temp,
|
|
unsigned long cpu_resume);
|
|
asmlinkage int hibernate_core_restore_code(void);
|
|
bool riscv_sbi_hsm_is_supported(void);
|
|
bool riscv_sbi_suspend_state_is_valid(u32 state);
|
|
int riscv_sbi_hart_suspend(u32 state);
|
|
#endif
|