diff mbox

[5/5] fsi-master: On XSCOM errors, try to reset the PIB2OPB bridge

Message ID 1473741928-31373-5-git-send-email-benh@kernel.crashing.org
State New
Headers show

Commit Message

Benjamin Herrenschmidt Sept. 13, 2016, 4:45 a.m. UTC
It may or may not work but *hopefully* won't hurt... well we hope.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 hw/fsi-master.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Stewart Smith Sept. 16, 2016, 6:54 a.m. UTC | #1
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> It may or may not work but *hopefully* won't hurt... well we hope.
>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

I'll hold off merging for a bit as we test it a bunch more.
diff mbox

Patch

diff --git a/hw/fsi-master.c b/hw/fsi-master.c
index a13af44..7de8d51 100644
--- a/hw/fsi-master.c
+++ b/hw/fsi-master.c
@@ -513,8 +513,6 @@  static int64_t mfsi_handle_error(struct mfsi *mfsi, uint32_t port,
 		 port, opb_stat);
 
 	/* First handle stat codes we synthetized */
-	if (opb_stat & OPB_ERR_XSCOM_ERR)
-		return OPAL_HARDWARE;
 	if (opb_stat & OPB_ERR_BAD_OPB_ADDR)
 		return OPAL_PARAMETER;
 
@@ -524,6 +522,9 @@  static int64_t mfsi_handle_error(struct mfsi *mfsi, uint32_t port,
 	/* Reset PIB2OPB */
 	mfsi_reset_pib2opb(mfsi);
 
+	if (opb_stat & OPB_ERR_XSCOM_ERR)
+		return OPAL_HARDWARE;
+
 	/* This one is not supposed to happen but ... */
 	if (opb_stat & OPB_ERR_TIMEOUT_ERR)
 		return OPAL_HARDWARE;