aboutsummaryrefslogtreecommitdiff
path: root/hw/lpc.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-07-29 08:45:10 +1000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-07-29 08:45:10 +1000
commit7d20aac37062d93e15a96008158e51b9bbb34684 (patch)
treef9f676a9b2f36f9e28e434e4630ceb8902c5279f /hw/lpc.c
parent45692031a4de2166f77ba654bb40d3d301aa3082 (diff)
downloadskiboot-7d20aac37062d93e15a96008158e51b9bbb34684.zip
skiboot-7d20aac37062d93e15a96008158e51b9bbb34684.tar.gz
skiboot-7d20aac37062d93e15a96008158e51b9bbb34684.tar.bz2
lpc: Don't poll in spin loops
The LPC code is called from deep into various call stacks such as the UART one, polling from there could cause nasty recursions, so use a _nopoll variant of wait. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'hw/lpc.c')
-rw-r--r--hw/lpc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/lpc.c b/hw/lpc.c
index 8dc533d..603d3af 100644
--- a/hw/lpc.c
+++ b/hw/lpc.c
@@ -139,7 +139,7 @@ static int64_t opb_write(struct proc_chip *chip, uint32_t addr, uint32_t data,
}
return OPAL_SUCCESS;
}
- time_wait(100);
+ time_wait_nopoll(100);
}
log_simple_error(&e_info(OPAL_RC_LPC_WRITE), "LPC: Write timeout !\n");
return OPAL_HARDWARE;
@@ -194,7 +194,7 @@ static int64_t opb_read(struct proc_chip *chip, uint32_t addr, uint32_t *data,
}
return 0;
}
- time_wait(100);
+ time_wait_nopoll(100);
}
log_simple_error(&e_info(OPAL_RC_LPC_READ), "LPC: Read timeout !\n");
return OPAL_HARDWARE;