lkml.org 
[lkml]   [2023]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 3/6] crypto: ccp: Return doorbell status code as an argument
    Date
    If the doorbell failed to ring we return -EIO, but the caller can't
    determine why it failed. Pass the reason for the failure in an
    argument for caller to investigate.

    Suggested-by: Mark Hasemeyer <markhas@chromium.org>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    ---
    v5->v6:
    * New patch
    ---
    drivers/crypto/ccp/platform-access.c | 4 +++-
    include/linux/psp-platform-access.h | 4 ++--
    2 files changed, 5 insertions(+), 3 deletions(-)

    diff --git a/drivers/crypto/ccp/platform-access.c b/drivers/crypto/ccp/platform-access.c
    index 1cc154a1c6ab..48f59ae91692 100644
    --- a/drivers/crypto/ccp/platform-access.c
    +++ b/drivers/crypto/ccp/platform-access.c
    @@ -132,7 +132,7 @@ int psp_send_platform_access_msg(enum psp_platform_access_msg msg,
    }
    EXPORT_SYMBOL_GPL(psp_send_platform_access_msg);

    -int psp_ring_platform_doorbell(int msg)
    +int psp_ring_platform_doorbell(int msg, u32 *result)
    {
    struct psp_device *psp = psp_get_master_device();
    struct psp_platform_access_device *pa_dev;
    @@ -164,6 +164,8 @@ int psp_ring_platform_doorbell(int msg)

    val = FIELD_GET(PSP_CMDRESP_STS, ioread32(cmd));
    if (val) {
    + if (result)
    + *result = val;
    ret = -EIO;
    goto unlock;
    }
    diff --git a/include/linux/psp-platform-access.h b/include/linux/psp-platform-access.h
    index 89df4549fada..1b661341d8f3 100644
    --- a/include/linux/psp-platform-access.h
    +++ b/include/linux/psp-platform-access.h
    @@ -45,9 +45,9 @@ int psp_send_platform_access_msg(enum psp_platform_access_msg, struct psp_reques
    * -%EBUSY: mailbox in recovery or in use
    * -%ENODEV: driver not bound with PSP device
    * -%ETIMEDOUT: request timed out
    - * -%EIO: unknown error (see kernel log)
    + * -%EIO: error will be stored in result argument
    */
    -int psp_ring_platform_doorbell(int msg);
    +int psp_ring_platform_doorbell(int msg, u32 *result);

    /**
    * psp_check_platform_access_status() - Checks whether platform features is ready
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-03-30 00:08    [W:5.159 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site