blob: 6ae58eb866a6577ec618767211543b372cb00a93 [file] [log] [blame]
// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
/*
* OPAL calls to get/set power caps
*
* Copyright 2017 IBM Corp.
*/
#include <powercap.h>
static int opal_get_powercap(u32 handle, int token __unused, __be32 *__pcap)
{
if (!__pcap || !opal_addr_valid(__pcap))
return OPAL_PARAMETER;
if (powercap_get_class(handle) == POWERCAP_CLASS_OCC) {
u32 pcap;
int rc;
rc = occ_get_powercap(handle, &pcap);
*__pcap = cpu_to_be32(pcap);
return rc;
}
return OPAL_UNSUPPORTED;
};
opal_call(OPAL_GET_POWERCAP, opal_get_powercap, 3);
static int opal_set_powercap(u32 handle, int token, u32 pcap)
{
if (powercap_get_class(handle) == POWERCAP_CLASS_OCC)
return occ_set_powercap(handle, token, pcap);
return OPAL_UNSUPPORTED;
};
opal_call(OPAL_SET_POWERCAP, opal_set_powercap, 3);