summaryrefslogtreecommitdiff
path: root/drivers/devfreq/devfreq_spdm_debugfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/devfreq/devfreq_spdm_debugfs.c')
-rw-r--r--drivers/devfreq/devfreq_spdm_debugfs.c111
1 files changed, 73 insertions, 38 deletions
diff --git a/drivers/devfreq/devfreq_spdm_debugfs.c b/drivers/devfreq/devfreq_spdm_debugfs.c
index ef7ac3323ce2..8ef329620a86 100644
--- a/drivers/devfreq/devfreq_spdm_debugfs.c
+++ b/drivers/devfreq/devfreq_spdm_debugfs.c
@@ -1,5 +1,5 @@
/*
-*Copyright (c) 2014, The Linux Foundation. All rights reserved.
+*Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
*
*This program is free software; you can redistribute it and/or modify
*it under the terms of the GNU General Public License version 2 and
@@ -15,7 +15,6 @@
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
-#include <soc/qcom/hvc.h>
#include "devfreq_spdm.h"
static int spdm_open(struct inode *inode, struct file *file)
@@ -29,7 +28,8 @@ static ssize_t pl_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
int i;
buf = kzalloc(size, GFP_KERNEL);
@@ -47,8 +47,10 @@ static ssize_t pl_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
for (i = 0; i < SPDM_PL_COUNT - 1; i++)
desc.arg[i+2] = spdm_data->config_data.pl_freqs[i];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, SPDM_PL_COUNT + 1);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -64,7 +66,8 @@ static ssize_t rejrate_low_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -80,8 +83,10 @@ static ssize_t rejrate_low_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.reject_rate[0];
desc.arg[3] = spdm_data->config_data.reject_rate[1];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -97,7 +102,8 @@ static ssize_t rejrate_med_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -112,8 +118,10 @@ static ssize_t rejrate_med_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.reject_rate[2];
desc.arg[3] = spdm_data->config_data.reject_rate[3];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -129,7 +137,8 @@ static ssize_t rejrate_high_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -144,8 +153,10 @@ static ssize_t rejrate_high_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.reject_rate[4];
desc.arg[3] = spdm_data->config_data.reject_rate[5];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -161,7 +172,8 @@ static ssize_t resptime_low_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -176,8 +188,10 @@ static ssize_t resptime_low_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.response_time_us[0];
desc.arg[3] = spdm_data->config_data.response_time_us[1];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -193,7 +207,8 @@ static ssize_t resptime_med_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -208,8 +223,10 @@ static ssize_t resptime_med_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.response_time_us[2];
desc.arg[3] = spdm_data->config_data.response_time_us[3];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -225,7 +242,8 @@ static ssize_t resptime_high_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -240,8 +258,10 @@ static ssize_t resptime_high_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.response_time_us[4];
desc.arg[3] = spdm_data->config_data.response_time_us[5];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -257,7 +277,8 @@ static ssize_t cciresptime_low_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -272,8 +293,10 @@ static ssize_t cciresptime_low_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.cci_response_time_us[0];
desc.arg[3] = spdm_data->config_data.cci_response_time_us[1];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -289,7 +312,8 @@ static ssize_t cciresptime_med_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -304,8 +328,10 @@ static ssize_t cciresptime_med_write(struct file *file, const char __user *data,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.cci_response_time_us[2];
desc.arg[3] = spdm_data->config_data.cci_response_time_us[3];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -322,7 +348,8 @@ static ssize_t cciresptime_high_write(struct file *file,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -337,8 +364,10 @@ static ssize_t cciresptime_high_write(struct file *file,
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.cci_response_time_us[4];
desc.arg[3] = spdm_data->config_data.cci_response_time_us[5];
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 4);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -354,7 +383,8 @@ static ssize_t cci_max_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -367,8 +397,10 @@ static ssize_t cci_max_write(struct file *file, const char __user *data,
desc.arg[0] = SPDM_CMD_CFG_MAXCCI;
desc.arg[1] = spdm_data->spdm_client;
desc.arg[2] = spdm_data->config_data.max_cci_freq;
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 3);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;
@@ -384,7 +416,8 @@ static ssize_t vote_cfg_write(struct file *file, const char __user *data,
{
struct spdm_data *spdm_data = file->private_data;
char *buf;
- struct hvc_desc desc;
+ struct spdm_args desc = { { 0 } };
+ int ext_status = 0;
buf = kzalloc(size, GFP_KERNEL);
@@ -403,8 +436,10 @@ static ssize_t vote_cfg_write(struct file *file, const char __user *data,
desc.arg[3] = spdm_data->config_data.downstep;
desc.arg[4] = spdm_data->config_data.max_vote;
desc.arg[5] = spdm_data->config_data.up_step_multp;
- if (hvc(HVC_FN_SIP(SPDM_HYP_FNID), &desc))
- pr_debug("check hvc logs");
+ ext_status = spdm_ext_call(&desc, 6);
+ if (ext_status)
+ pr_err("External command %u failed with error %u",
+ (int)desc.arg[0], ext_status);
*offset += size;
kfree(buf);
return size;