opal
} opal;
if (getprop(opal_node, "opal-base-address", &opal.base, sizeof(u64)) < 0)
opal.base = be64_to_cpu(opal.base);
if (getprop(opal_node, "opal-entry-address", &opal.entry, sizeof(u64)) < 0)
opal.entry = be64_to_cpu(opal.entry);
opal.base = of_read_number(basep, basesz/4);
opal.entry = of_read_number(entryp, entrysz/4);
opal.size = of_read_number(sizep, runtimesz/4);
opal.base, basep, basesz);
opal.entry, entryp, entrysz);
opal.size, sizep, runtimesz);
if (!opal.entry)
if (!opal.entry)
} opal;
if (!opal.base || !opal.size)
if ((regs->nip >= opal.base) &&
(regs->nip < (opal.base + opal.size)))
rc = opal_pci_set_phb_mem_window(opal->phb_id,
static int opal_reverttper(struct opal_dev *dev, struct opal_key *opal, bool psid)
{ start_SIDASP_opal_session, opal },
{ start_PSID_opal_session, opal },
ret = opal_get_key(dev, opal);
static int opal_take_ownership(struct opal_dev *dev, struct opal_key *opal)
{ start_SIDASP_opal_session, opal },
{ set_sid_cpin_pin, opal },
ret = opal_get_key(dev, opal);
struct device_node *opal, *np;
opal = of_find_node_by_path("/ibm,opal/sensors");
for_each_child_of_node(opal, np) {
of_node_put(opal);
struct device_node *opal, *np;
opal = of_find_node_by_path("/ibm,opal/sensors");
for_each_child_of_node(opal, np) {
of_node_put(opal);
struct device_node *opal, *np;
opal = of_find_node_by_path("/ibm,opal/consoles");
if (opal) {
opal = of_find_node_by_path("/ibm,opal");
if (opal)
if (!opal)
for_each_child_of_node(opal, np) {
of_node_put(opal);