diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/crypto/caam/error.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/drivers/crypto/caam/error.c b/drivers/crypto/caam/error.c index 961331d1b6ab..7ce1d0349d68 100644 --- a/drivers/crypto/caam/error.c +++ b/drivers/crypto/caam/error.c @@ -181,12 +181,15 @@ static void report_jump_idx(u32 status, char *outstr) SPRINTFCAT(outstr, "%d: ", idx, sizeof("255")); } -static void report_ccb_status(u32 status, char *outstr) +static void report_ccb_status(struct device *jrdev, u32 status, + const char *error, char *outstr) { u8 cha_id = (status & JRSTA_CCBERR_CHAID_MASK) >> JRSTA_CCBERR_CHAID_SHIFT; u8 err_id = status & JRSTA_CCBERR_ERRID_MASK; + sprintf(outstr, "%s: ", error); + report_jump_idx(status, outstr); if (cha_id < ARRAY_SIZE(cha_id_list)) { @@ -212,15 +215,19 @@ static void report_ccb_status(u32 status, char *outstr) } } -static void report_jump_status(u32 status, char *outstr) +static void report_jump_status(struct device *jrdev, u32 status, + const char *error, char *outstr) { + sprintf(outstr, "%s: ", error); SPRINTFCAT(outstr, "%s() not implemented", __func__, sizeof(__func__)); } -static void report_deco_status(u32 status, char *outstr) +static void report_deco_status(struct device *jrdev, u32 status, + const char *error, char *outstr) { u8 desc_error = status & JRSTA_DECOERR_ERROR_MASK; int i; + sprintf(outstr, "%s: ", error); report_jump_idx(status, outstr); @@ -237,13 +244,17 @@ static void report_deco_status(u32 status, char *outstr) } } -static void report_jr_status(u32 status, char *outstr) +static void report_jr_status(struct device *jrdev, u32 status, + const char *error, char *outstr) { + sprintf(outstr, "%s: ", error); SPRINTFCAT(outstr, "%s() not implemented", __func__, sizeof(__func__)); } -static void report_cond_code_status(u32 status, char *outstr) +static void report_cond_code_status(struct device *jrdev, u32 status, + const char *error, char *outstr) { + sprintf(outstr, "%s: ", error); SPRINTFCAT(outstr, "%s() not implemented", __func__, sizeof(__func__)); } @@ -251,8 +262,9 @@ void caam_jr_strstatus(struct device *jrdev, u32 status) { char outstr[CAAM_ERROR_STR_MAX]; static const struct stat_src { - void (*report_ssed)(u32 status, char *outstr); - char *error; + void (*report_ssed)(struct device *jrdev, u32 status, + const char *error, char *outstr); + const char *error; } status_src[] = { { NULL, "No error" }, { NULL, NULL }, @@ -274,9 +286,8 @@ void caam_jr_strstatus(struct device *jrdev, u32 status) return; } - sprintf(outstr, "%s: ", status_src[ssrc].error); - - status_src[ssrc].report_ssed(status, outstr); + status_src[ssrc].report_ssed(jrdev, status, + status_src[ssrc].error, outstr); dev_err(jrdev, "%08x: %s\n", status, outstr); } |