blob: 3694aeea5a905bd8d4b16d34f0cce9797c401206 [file] [log] [blame]
/*
* Copyright (c) 2014 Samsung Electronics Co., Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* 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 <linux/linkage.h>
#define ESS_FLAG_IN (1)
#define ESS_FLAG_OUT (3)
ENTRY(uh_call)
#ifdef CONFIG_EXYNOS_SNAPSHOT_LOGGING_HVC_CALL
stp x29, x30, [sp, #-64]!
mov x29, sp
stp x0, x1, [sp, #16]
stp x2, x3, [sp, #32]
stp x4, x5, [sp, #48]
mov x5, #ESS_FLAG_IN
bl exynos_ss_hvc
ldp x0, x1, [sp, #16]
ldp x2, x3, [sp, #32]
ldp x4, x5, [sp, #48]
#endif
hvc #0
#ifdef CONFIG_EXYNOS_SNAPSHOT_LOGGING_HVC_CALL
stp x0, x1, [sp, #16]
stp x2, x3, [sp, #32]
stp x4, x5, [sp, #48]
mov x5, #ESS_FLAG_OUT
bl exynos_ss_hvc
ldp x0, x1, [sp, #16]
ldp x2, x3, [sp, #32]
ldp x4, x5, [sp, #48]
ldp x29, x30, [sp], #64
#endif
ret
ENDPROC(uh_call)