]> www.infradead.org Git - users/dwmw2/linux.git/commit
powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops
authorNicholas Piggin <npiggin@gmail.com>
Tue, 10 Apr 2018 11:49:31 +0000 (21:49 +1000)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 23 May 2018 01:36:33 +0000 (21:36 -0400)
commitef84c0b5c339e5c9ae2fd0a034f8451545c6b50c
treee88d4ac8e25a85e01fcdb5320e37862aa5d3c589
parent029802817710e886fe74eeeef8282e2f3c124943
powerpc/powernv: define a standard delay for OPAL_BUSY type retry loops

[ Upstream commit 34dd25de9fe3f60bfdb31b473bf04b28262d0896 ]

This is the start of an effort to tidy up and standardise all the
delays. Existing loops have a range of delay/sleep periods from 1ms
to 20ms, and some have no delay. They all loop forever except rtc,
which times out after 10 retries, and that uses 10ms delays. So use
10ms as our standard delay. The OPAL maintainer agrees 10ms is a
reasonable starting point.

The idea is to use the same recipe everywhere, once this is proven to
work then it will be documented as an OPAL API standard. Then both
firmware and OS can agree, and if a particular call needs something
else, then that can be documented with reasoning.

This is not the end-all of this effort, it's just a relatively easy
change that fixes some existing high latency delays. There should be
provision for standardising timeouts and/or interruptible loops where
possible, so non-fatal firmware errors don't cause hangs.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
arch/powerpc/include/asm/opal.h