Squashed backup commit (no shallow-clone history issues) of xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream commit 9eece662e) plus all fixes applied to get everpal_defconfig building clean against a modern (GCC 15.2.0) toolchain -- see the previous commit message on the lineage-23.2 branch (also in this repo history is not available here since this is a squashed snapshot; full incremental history lives in the local DL380 checkout and the upstream GitHub remote). Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
/*
|
|
* Copyright (C) 2013 Google, Inc.
|
|
*
|
|
* This software is licensed under the terms of the GNU General Public
|
|
* License version 2, as published by the Free Software Foundation, and
|
|
* may be copied, distributed, and modified under those terms.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
#include <asm/fiq_glue.h>
|
|
#include <linux/platform_device.h>
|
|
#include <linux/trusty/smcall.h>
|
|
#include <linux/trusty/trusty.h>
|
|
|
|
#include "trusty-fiq.h"
|
|
|
|
#define _STRINGIFY(x) #x
|
|
#define STRINGIFY(x) _STRINGIFY(x)
|
|
|
|
static void __naked trusty_fiq_return(void)
|
|
{
|
|
asm volatile(
|
|
".arch_extension sec\n"
|
|
"mov r12, r0\n"
|
|
"ldr r0, =" STRINGIFY(SMC_FC_FIQ_EXIT) "\n"
|
|
"smc #0");
|
|
}
|
|
|
|
int trusty_fiq_arch_probe(struct platform_device *pdev)
|
|
{
|
|
return fiq_glue_set_return_handler(trusty_fiq_return);
|
|
}
|
|
|
|
void trusty_fiq_arch_remove(struct platform_device *pdev)
|
|
{
|
|
fiq_glue_clear_return_handler(trusty_fiq_return);
|
|
}
|