diff mbox

fsp: Fix FSP irq initialization on PSIHBCR for resets

Message ID 20150312111337.27376.26238.stgit@thinktux.in.ibm.com
State Accepted
Headers show

Commit Message

Ananth N Mavinakayanahalli March 12, 2015, 11:13 a.m. UTC
During Reset/Reload, we currently enable FSP interrupts on PSIHBCR
even before the DISR handshake is complete. Fix that.

Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
---
 hw/fsp/fsp.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/hw/fsp/fsp.c b/hw/fsp/fsp.c
index fdf175a..779eef9 100644
--- a/hw/fsp/fsp.c
+++ b/hw/fsp/fsp.c
@@ -722,6 +722,8 @@  static void fsp_handle_errors(struct fsp *fsp)
 
 			/* Also clear R&R complete bit in DISR */
 			fsp_wreg(fsp, FSP_DISR_REG, FSP_DISR_FSP_RR_COMPLETE);
+
+			psi_enable_fsp_interrupt(psi);
 		}
 	}
 
@@ -1859,7 +1861,6 @@  static void fsp_update_links_states(struct fsp *fsp)
 		fiop = &fsp->iopath[fsp->active_iopath];
 		psi_init_for_fsp(fiop->psi);
 		fsp_init_mbox(fsp);
-		psi_enable_fsp_interrupt(fiop->psi);
 	}
 }
 
@@ -1911,6 +1912,7 @@  static void fsp_create_fsp(struct dt_node *fsp_node)
 
 	fsp_init_links(fsp_node);
 	fsp_update_links_states(fsp);
+	psi_enable_fsp_interrupt(fsp->iopath[fsp->active_iopath].psi);
 }
 
 static void fsp_opal_poll(void *data __unused)