aboutsummaryrefslogtreecommitdiff
path: root/hw/fsp
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.vnet.ibm.com>2015-12-03 16:20:34 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-12-03 16:20:34 +1100
commit3ee71369bcc9c3b299586acb7f714d83c7447011 (patch)
tree525448c62cf0cfefbcae712cd1c99e80bc25c4d4 /hw/fsp
parentc89400a0538394e87b60f29c3883d826f04ddc84 (diff)
parentd379d6d9f5ece1606d9fc89bbbdb56814d405116 (diff)
downloadskiboot-3ee71369bcc9c3b299586acb7f714d83c7447011.zip
skiboot-3ee71369bcc9c3b299586acb7f714d83c7447011.tar.gz
skiboot-3ee71369bcc9c3b299586acb7f714d83c7447011.tar.bz2
Merge branch 'stable'
Diffstat (limited to 'hw/fsp')
-rw-r--r--hw/fsp/fsp.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/hw/fsp/fsp.c b/hw/fsp/fsp.c
index b53c3f0..220b97e 100644
--- a/hw/fsp/fsp.c
+++ b/hw/fsp/fsp.c
@@ -569,6 +569,28 @@ static void fsp_start_rr(struct fsp *fsp)
*/
}
+/*
+ * Called on normal/quick shutdown to give up the PSI link
+ */
+void fsp_reset_links(void)
+{
+ struct fsp *fsp = fsp_get_active();
+ struct fsp_iopath *iop;
+
+ if (!fsp)
+ return;
+
+ /* Already in one of the error states? */
+ if (fsp_in_hir(fsp) || fsp_in_reset(fsp))
+ return;
+
+ iop = &fsp->iopath[fsp->active_iopath];
+ prlog(PR_NOTICE, "FSP #%d: Host initiated shutdown."
+ " Giving up the PSI link\n", fsp->index);
+ psi_disable_link(iop->psi);
+ return;
+}
+
static void fsp_trace_event(struct fsp *fsp, u32 evt,
u32 data0, u32 data1, u32 data2, u32 data3)
{