Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87b336d0 authored by Keith Busch's avatar Keith Busch Committed by Bjorn Helgaas
Browse files

PCI/DPC: Decode extended reasons



Decode the currently defined extended event reasons rather than just using
the generic "extended" explanation.

Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 7ce7d89f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -73,11 +73,15 @@ static irqreturn_t dpc_irq(int irq, void *context)

	if (status & PCI_EXP_DPC_STATUS_TRIGGER) {
		u16 reason = (status >> 1) & 0x3;
		u16 ext_reason = (status >> 5) & 0x3;

		dev_warn(&dpc->dev->device, "DPC %s triggered, remove downstream devices\n",
		dev_warn(&dpc->dev->device, "DPC %s detected, remove downstream devices\n",
			 (reason == 0) ? "unmasked uncorrectable error" :
			 (reason == 1) ? "ERR_NONFATAL" :
			 (reason == 2) ? "ERR_FATAL" : "extended error");
			 (reason == 2) ? "ERR_FATAL" :
			 (ext_reason == 0) ? "RP PIO error" :
			 (ext_reason == 1) ? "software trigger" :
					     "reserved error");
		schedule_work(&dpc->work);
	}
	return IRQ_HANDLED;