summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.vnet.ibm.com>2014-11-26 10:27:13 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2014-11-26 10:27:13 +1100
commit7e272ea547ea1bd02ae15eba52a7ae5f3de81283 (patch)
treef27dad7054dcb689fafc2e126044bfab2d07ff90 /core
parent69a08f542562d07cb7d8ecd6c289190d80dee163 (diff)
parent82b950bc00a61f0c18634ede0df09fd5fcbc8a59 (diff)
downloadtalos-skiboot-7e272ea547ea1bd02ae15eba52a7ae5f3de81283.tar.gz
talos-skiboot-7e272ea547ea1bd02ae15eba52a7ae5f3de81283.zip
Merge branch 'update-2.1.1.1'
Diffstat (limited to 'core')
-rw-r--r--core/hostservices.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/core/hostservices.c b/core/hostservices.c
index fdf8a6b6..106870a2 100644
--- a/core/hostservices.c
+++ b/core/hostservices.c
@@ -758,6 +758,35 @@ int host_services_occ_start(void)
return rc;
}
+int host_services_occ_stop(void)
+{
+ struct proc_chip *chip;
+ int i, rc = 0, nr_chips=0;
+ uint64_t chipids[MAX_CHIPS];
+
+ prlog(PR_INFO, "HBRT: OCC Stop requested\n");
+
+ if (!(hservice_runtime && hservice_runtime->stopOCCs)) {
+ prerror("HBRT: No hservice_runtime->stopOCCs\n");
+ return -ENOENT;
+ }
+
+ for_each_chip(chip) {
+ chipids[nr_chips++] = chip->id;
+ }
+
+ for (i = 0; i < nr_chips; i++)
+ prlog(PR_TRACE, "HBRT: Calling stopOCC() for %04llx ",
+ chipids[i]);
+
+ /* Lets STOP all OCC */
+ rc = hservice_runtime->stopOCCs(chipids, nr_chips);
+ hservice_mark();
+ prlog(PR_DEBUG, "HBRT: stopOCCs() rc = %d\n", rc);
+ return rc;
+}
+
+
void host_services_occ_base_setup(void)
{
struct proc_chip *chip;
OpenPOWER on IntegriCloud