aboutsummaryrefslogtreecommitdiff
path: root/hw/dts.c
diff options
context:
space:
mode:
authorShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>2018-03-09 10:47:32 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2018-03-14 02:04:33 -0500
commitb5c9d09d067743be6ab12eef49f80562f0d41f02 (patch)
tree3cd10b98b7a6866a2fe7a6c66e756eebed5ee779 /hw/dts.c
parent773836f3424d3e9a7a27996ccb2e698aa581417a (diff)
downloadskiboot-b5c9d09d067743be6ab12eef49f80562f0d41f02.zip
skiboot-b5c9d09d067743be6ab12eef49f80562f0d41f02.tar.gz
skiboot-b5c9d09d067743be6ab12eef49f80562f0d41f02.tar.bz2
dts: spl_wakeup: Remove all workarounds in the spl wakeup logic
We coded few workarounds in special wakeup logic to handle the buggy firmware. Now that is fixed remove them as they break the special wakeup protocol. As per the spec we should not de-assert beofre assert is complete. So follow this protocol. Signed-off-by: Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com> Reviewed-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Tested-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/dts.c')
-rw-r--r--hw/dts.c30
1 files changed, 1 insertions, 29 deletions
diff --git a/hw/dts.c b/hw/dts.c
index ecfe847..949791b 100644
--- a/hw/dts.c
+++ b/hw/dts.c
@@ -236,34 +236,6 @@ static int dts_read_core_temp_p9(uint32_t pir, struct dts *dts)
return 0;
}
-static int dts_wakeup_core(struct cpu_thread *cpu)
-{
- int retries = 10;
- int rc;
-
- while (retries-- > 0) {
- rc = dctl_set_special_wakeup(cpu);
- if (rc) {
- prerror("Failed to set special wakeup on %d (%d)\n",
- cpu->pir, rc);
- return rc;
- }
-
- if (!dctl_core_is_gated(cpu))
- break;
-
- prlog(PR_NOTICE, "Retrying special wakeup on %d\n", cpu->pir);
- rc = dctl_clear_special_wakeup(cpu);
- if (rc) {
- prerror("Failed to clear special wakeup on %d (%d)\n",
- cpu->pir, rc);
- return rc;
- }
- }
-
- return rc;
-}
-
static void dts_async_read_temp(struct timer *t __unused, void *data,
u64 now __unused)
{
@@ -271,7 +243,7 @@ static void dts_async_read_temp(struct timer *t __unused, void *data,
int rc, swkup_rc;
struct cpu_thread *cpu = data;
- swkup_rc = dts_wakeup_core(cpu);
+ swkup_rc = dctl_set_special_wakeup(cpu);
rc = dts_read_core_temp_p9(cpu->pir, &dts);
if (!rc) {