diff options
author | Stewart Smith <stewart@linux.vnet.ibm.com> | 2014-11-26 10:27:13 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2014-11-26 10:27:13 +1100 |
commit | 7e272ea547ea1bd02ae15eba52a7ae5f3de81283 (patch) | |
tree | f27dad7054dcb689fafc2e126044bfab2d07ff90 /core | |
parent | 69a08f542562d07cb7d8ecd6c289190d80dee163 (diff) | |
parent | 82b950bc00a61f0c18634ede0df09fd5fcbc8a59 (diff) | |
download | talos-skiboot-7e272ea547ea1bd02ae15eba52a7ae5f3de81283.tar.gz talos-skiboot-7e272ea547ea1bd02ae15eba52a7ae5f3de81283.zip |
Merge branch 'update-2.1.1.1'
Diffstat (limited to 'core')
-rw-r--r-- | core/hostservices.c | 29 |
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; |