|
@@ -213,27 +213,36 @@ void caam_jr_strstatus(struct device *jrdev, u32 status)
|
|
|
void (*report_ssed)(struct device *jrdev, const u32 status,
|
|
|
const char *error);
|
|
|
const char *error;
|
|
|
- } status_src[] = {
|
|
|
+ } status_src[16] = {
|
|
|
{ NULL, "No error" },
|
|
|
{ NULL, NULL },
|
|
|
{ report_ccb_status, "CCB" },
|
|
|
{ report_jump_status, "Jump" },
|
|
|
{ report_deco_status, "DECO" },
|
|
|
- { NULL, NULL },
|
|
|
+ { NULL, "Queue Manager Interface" },
|
|
|
{ report_jr_status, "Job Ring" },
|
|
|
{ report_cond_code_status, "Condition Code" },
|
|
|
+ { NULL, NULL },
|
|
|
+ { NULL, NULL },
|
|
|
+ { NULL, NULL },
|
|
|
+ { NULL, NULL },
|
|
|
+ { NULL, NULL },
|
|
|
+ { NULL, NULL },
|
|
|
+ { NULL, NULL },
|
|
|
+ { NULL, NULL },
|
|
|
};
|
|
|
u32 ssrc = status >> JRSTA_SSRC_SHIFT;
|
|
|
const char *error = status_src[ssrc].error;
|
|
|
|
|
|
/*
|
|
|
- * If there is no further error handling function, just
|
|
|
- * print the error code, error string and exit. Otherwise
|
|
|
- * call the handler function.
|
|
|
+ * If there is an error handling function, call it to report the error.
|
|
|
+ * Otherwise print the error source name.
|
|
|
*/
|
|
|
- if (!status_src[ssrc].report_ssed)
|
|
|
- dev_err(jrdev, "%08x: %s: \n", status, status_src[ssrc].error);
|
|
|
- else
|
|
|
+ if (status_src[ssrc].report_ssed)
|
|
|
status_src[ssrc].report_ssed(jrdev, status, error);
|
|
|
+ else if (error)
|
|
|
+ dev_err(jrdev, "%d: %s\n", ssrc, error);
|
|
|
+ else
|
|
|
+ dev_err(jrdev, "%d: unknown error source\n", ssrc);
|
|
|
}
|
|
|
EXPORT_SYMBOL(caam_jr_strstatus);
|