[Skiboot] [PATCH v10 16/17] core/opal: Use PCI slot and new APIs for slot states
Stewart Smith
stewart at linux.vnet.ibm.com
Thu May 12 15:18:50 AEST 2016
Gavin Shan <gwshan at linux.vnet.ibm.com> writes:
> The various reset requests are completed by PHB's callbacks. All
> of them (except reset on IODA table or error injection) are covered
> by PCI slot. opal_pci_poll() faces similar situation.
>
> This reimplements opal_pci_reset() and opal_pci_poll() based on
> the callbacks provided by PCI slot instead of PHB. Also, couple of
> new APIs are introduced based on the callbacks in PCI slot as below:
>
> * opal_pci_get_presence_state(): Check if there is adapter presented
> behind the specified PHB or PCI slot.
> * opal_pci_get_power_state(): Returns power supply state (on or off)
> on the specified PHB or PCI slot.
> * opal_pci_set_power_state(): Sets power supply state (on or off)
> on the specified PHB or PCI slot.
> * opal_pci_poll2(): Poll for PCI slot state. It accepts two arguments
> while opal_pci_poll() accepts only one.
>
> Eventually, the definition of unused PHB's callbacks are removed.
>
> Signed-off-by: Gavin Shan <gwshan at linux.vnet.ibm.com>
> ---
> core/pci-opal.c | 174 +++++++++++++++++++++++++++++++++++++++++++++--------
> include/opal-api.h | 6 +-
> include/pci.h | 72 ----------------------
> 3 files changed, 153 insertions(+), 99 deletions(-)
Please also add documentation for the new calls in doc/opal-api/
> +static int64_t opal_pci_poll2(uint64_t id, uint64_t data)
If we're going to start fixing the PCI calls, we could at the same time
use the more modern OPAL convention of async calls, and there's a
standard way to wait for them in the kernel -
opal_async_wait_response() - although we may want to ensure that things
are cranked often enough.
We could also convert the existing users of opal_pci_poll() to proper
async completions too... we'd then be able to get rid of the old calls
for p9 and (eventually) remove them altogether.
--
Stewart Smith
OPAL Architect, IBM.
More information about the Skiboot
mailing list