diff options
Diffstat (limited to 'drivers/misc/cxl/irq.c')
-rw-r--r-- | drivers/misc/cxl/irq.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/drivers/misc/cxl/irq.c b/drivers/misc/cxl/irq.c index 8def4553acba..dec60f58a767 100644 --- a/drivers/misc/cxl/irq.c +++ b/drivers/misc/cxl/irq.c | |||
@@ -260,9 +260,6 @@ int afu_allocate_irqs(struct cxl_context *ctx, u32 count) | |||
260 | else | 260 | else |
261 | alloc_count = count + 1; | 261 | alloc_count = count + 1; |
262 | 262 | ||
263 | /* Initialize the list head to hold irq names */ | ||
264 | INIT_LIST_HEAD(&ctx->irq_names); | ||
265 | |||
266 | if ((rc = cxl_ops->alloc_irq_ranges(&ctx->irqs, ctx->afu->adapter, | 263 | if ((rc = cxl_ops->alloc_irq_ranges(&ctx->irqs, ctx->afu->adapter, |
267 | alloc_count))) | 264 | alloc_count))) |
268 | return rc; | 265 | return rc; |
@@ -374,3 +371,32 @@ void afu_release_irqs(struct cxl_context *ctx, void *cookie) | |||
374 | 371 | ||
375 | ctx->irq_count = 0; | 372 | ctx->irq_count = 0; |
376 | } | 373 | } |
374 | |||
375 | void cxl_afu_decode_psl_serr(struct cxl_afu *afu, u64 serr) | ||
376 | { | ||
377 | dev_crit(&afu->dev, | ||
378 | "PSL Slice error received. Check AFU for root cause.\n"); | ||
379 | dev_crit(&afu->dev, "PSL_SERR_An: 0x%016llx\n", serr); | ||
380 | if (serr & CXL_PSL_SERR_An_afuto) | ||
381 | dev_crit(&afu->dev, "AFU MMIO Timeout\n"); | ||
382 | if (serr & CXL_PSL_SERR_An_afudis) | ||
383 | dev_crit(&afu->dev, | ||
384 | "MMIO targeted Accelerator that was not enabled\n"); | ||
385 | if (serr & CXL_PSL_SERR_An_afuov) | ||
386 | dev_crit(&afu->dev, "AFU CTAG Overflow\n"); | ||
387 | if (serr & CXL_PSL_SERR_An_badsrc) | ||
388 | dev_crit(&afu->dev, "Bad Interrupt Source\n"); | ||
389 | if (serr & CXL_PSL_SERR_An_badctx) | ||
390 | dev_crit(&afu->dev, "Bad Context Handle\n"); | ||
391 | if (serr & CXL_PSL_SERR_An_llcmdis) | ||
392 | dev_crit(&afu->dev, "LLCMD to Disabled AFU\n"); | ||
393 | if (serr & CXL_PSL_SERR_An_llcmdto) | ||
394 | dev_crit(&afu->dev, "LLCMD Timeout to AFU\n"); | ||
395 | if (serr & CXL_PSL_SERR_An_afupar) | ||
396 | dev_crit(&afu->dev, "AFU MMIO Parity Error\n"); | ||
397 | if (serr & CXL_PSL_SERR_An_afudup) | ||
398 | dev_crit(&afu->dev, "AFU MMIO Duplicate CTAG Error\n"); | ||
399 | if (serr & CXL_PSL_SERR_An_AE) | ||
400 | dev_crit(&afu->dev, | ||
401 | "AFU asserted JDONE with JERROR in AFU Directed Mode\n"); | ||
402 | } | ||