fpu.h 448 B

123456789101112131415161718192021222324252627
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (C) 2023 SiFive
  4. */
  5. #ifndef __ASM_FPU_H
  6. #define __ASM_FPU_H
  7. #include <linux/preempt.h>
  8. #include <asm/neon.h>
  9. #define kernel_fpu_available() cpu_has_neon()
  10. static inline void kernel_fpu_begin(void)
  11. {
  12. BUG_ON(!in_task());
  13. preempt_disable();
  14. kernel_neon_begin(NULL);
  15. }
  16. static inline void kernel_fpu_end(void)
  17. {
  18. kernel_neon_end(NULL);
  19. preempt_enable();
  20. }
  21. #endif /* ! __ASM_FPU_H */