aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/cxl/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/cxl/irq.c')
-rw-r--r--drivers/misc/cxl/irq.c32
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
375void 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}