diff options
Diffstat (limited to 'drivers/misc/cxl/native.c')
-rw-r--r-- | drivers/misc/cxl/native.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/misc/cxl/native.c b/drivers/misc/cxl/native.c index 04c27e41b654..3bcdaee11ba1 100644 --- a/drivers/misc/cxl/native.c +++ b/drivers/misc/cxl/native.c | |||
@@ -862,7 +862,7 @@ void cxl_native_psl_irq_dump_regs(struct cxl_context *ctx) | |||
862 | dev_crit(&ctx->afu->dev, "PSL_FIR2: 0x%016llx\n", fir2); | 862 | dev_crit(&ctx->afu->dev, "PSL_FIR2: 0x%016llx\n", fir2); |
863 | if (ctx->afu->adapter->native->sl_ops->register_serr_irq) { | 863 | if (ctx->afu->adapter->native->sl_ops->register_serr_irq) { |
864 | serr = cxl_p1n_read(ctx->afu, CXL_PSL_SERR_An); | 864 | serr = cxl_p1n_read(ctx->afu, CXL_PSL_SERR_An); |
865 | dev_crit(&ctx->afu->dev, "PSL_SERR_An: 0x%016llx\n", serr); | 865 | cxl_afu_decode_psl_serr(ctx->afu, serr); |
866 | } | 866 | } |
867 | dev_crit(&ctx->afu->dev, "PSL_FIR_SLICE_An: 0x%016llx\n", fir_slice); | 867 | dev_crit(&ctx->afu->dev, "PSL_FIR_SLICE_An: 0x%016llx\n", fir_slice); |
868 | dev_crit(&ctx->afu->dev, "CXL_PSL_AFU_DEBUG_An: 0x%016llx\n", afu_debug); | 868 | dev_crit(&ctx->afu->dev, "CXL_PSL_AFU_DEBUG_An: 0x%016llx\n", afu_debug); |
@@ -956,21 +956,23 @@ void native_irq_wait(struct cxl_context *ctx) | |||
956 | static irqreturn_t native_slice_irq_err(int irq, void *data) | 956 | static irqreturn_t native_slice_irq_err(int irq, void *data) |
957 | { | 957 | { |
958 | struct cxl_afu *afu = data; | 958 | struct cxl_afu *afu = data; |
959 | u64 fir_slice, errstat, serr, afu_debug; | 959 | u64 fir_slice, errstat, serr, afu_debug, afu_error, dsisr; |
960 | 960 | ||
961 | /* | 961 | /* |
962 | * slice err interrupt is only used with full PSL (no XSL) | 962 | * slice err interrupt is only used with full PSL (no XSL) |
963 | */ | 963 | */ |
964 | WARN(irq, "CXL SLICE ERROR interrupt %i\n", irq); | ||
965 | |||
966 | serr = cxl_p1n_read(afu, CXL_PSL_SERR_An); | 964 | serr = cxl_p1n_read(afu, CXL_PSL_SERR_An); |
967 | fir_slice = cxl_p1n_read(afu, CXL_PSL_FIR_SLICE_An); | 965 | fir_slice = cxl_p1n_read(afu, CXL_PSL_FIR_SLICE_An); |
968 | errstat = cxl_p2n_read(afu, CXL_PSL_ErrStat_An); | 966 | errstat = cxl_p2n_read(afu, CXL_PSL_ErrStat_An); |
969 | afu_debug = cxl_p1n_read(afu, CXL_AFU_DEBUG_An); | 967 | afu_debug = cxl_p1n_read(afu, CXL_AFU_DEBUG_An); |
970 | dev_crit(&afu->dev, "PSL_SERR_An: 0x%016llx\n", serr); | 968 | afu_error = cxl_p2n_read(afu, CXL_AFU_ERR_An); |
969 | dsisr = cxl_p2n_read(afu, CXL_PSL_DSISR_An); | ||
970 | cxl_afu_decode_psl_serr(afu, serr); | ||
971 | dev_crit(&afu->dev, "PSL_FIR_SLICE_An: 0x%016llx\n", fir_slice); | 971 | dev_crit(&afu->dev, "PSL_FIR_SLICE_An: 0x%016llx\n", fir_slice); |
972 | dev_crit(&afu->dev, "CXL_PSL_ErrStat_An: 0x%016llx\n", errstat); | 972 | dev_crit(&afu->dev, "CXL_PSL_ErrStat_An: 0x%016llx\n", errstat); |
973 | dev_crit(&afu->dev, "CXL_PSL_AFU_DEBUG_An: 0x%016llx\n", afu_debug); | 973 | dev_crit(&afu->dev, "CXL_PSL_AFU_DEBUG_An: 0x%016llx\n", afu_debug); |
974 | dev_crit(&afu->dev, "AFU_ERR_An: 0x%.16llx\n", afu_error); | ||
975 | dev_crit(&afu->dev, "PSL_DSISR_An: 0x%.16llx\n", dsisr); | ||
974 | 976 | ||
975 | cxl_p1n_write(afu, CXL_PSL_SERR_An, serr); | 977 | cxl_p1n_write(afu, CXL_PSL_SERR_An, serr); |
976 | 978 | ||