lkml.org 
[lkml]   [2014]   [Aug]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/8] msm: scm: Add API to query for service/command availability.
    Date
    From: Saravana Kannan <skannan@codeaurora.org>

    Some drivers may need to query the secure environment about the
    availability of a particular service/command. Add support for
    this.

    Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
    [sboyd@codeaurora.org: Add some commit text]

    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    ---
    arch/arm/mach-qcom/scm.c | 18 +++++++++++++++++-
    arch/arm/mach-qcom/scm.h | 2 ++
    2 files changed, 19 insertions(+), 1 deletion(-)

    diff --git a/arch/arm/mach-qcom/scm.c b/arch/arm/mach-qcom/scm.c
    index a05cad3fa1c5..e80571f57ca4 100644
    --- a/arch/arm/mach-qcom/scm.c
    +++ b/arch/arm/mach-qcom/scm.c
    @@ -1,4 +1,4 @@
    -/* Copyright (c) 2010, Code Aurora Forum. All rights reserved.
    +/* Copyright (c) 2010-2014, 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
    @@ -394,3 +394,19 @@ u32 scm_get_version(void)
    return version;
    }
    EXPORT_SYMBOL(scm_get_version);
    +
    +#define IS_CALL_AVAIL_CMD 1
    +int scm_is_call_available(u32 svc_id, u32 cmd_id)
    +{
    + int ret;
    + u32 svc_cmd = (svc_id << 10) | cmd_id;
    + u32 ret_val = 0;
    +
    + ret = scm_call(SCM_SVC_INFO, IS_CALL_AVAIL_CMD, &svc_cmd,
    + sizeof(svc_cmd), &ret_val, sizeof(ret_val));
    + if (ret)
    + return ret;
    +
    + return ret_val;
    +}
    +EXPORT_SYMBOL(scm_is_call_available);
    diff --git a/arch/arm/mach-qcom/scm.h b/arch/arm/mach-qcom/scm.h
    index 1f0f0180e767..f94c7279616a 100644
    --- a/arch/arm/mach-qcom/scm.h
    +++ b/arch/arm/mach-qcom/scm.h
    @@ -14,6 +14,7 @@

    #define SCM_SVC_BOOT 0x1
    #define SCM_SVC_PIL 0x2
    +#define SCM_SVC_INFO 0x6

    extern int scm_call(u32 svc_id, u32 cmd_id, const void *cmd_buf, size_t cmd_len,
    void *resp_buf, size_t resp_len);
    @@ -24,5 +25,6 @@ extern s32 scm_call_atomic2(u32 svc, u32 cmd, u32 arg1, u32 arg2);
    #define SCM_VERSION(major, minor) (((major) << 16) | ((minor) & 0xFF))

    extern u32 scm_get_version(void);
    +extern int scm_is_call_available(u32 svc_id, u32 cmd_id);

    #endif
    --
    The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
    hosted by The Linux Foundation


    \
     
     \ /
      Last update: 2014-08-05 04:01    [W:4.525 / U:1.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site