> > + if ((int)res->a0 == PSCI_RET_NOT_SUPPORTED) > > + return -ENOTSUPP; > > -ENODEV would be better here. > > > + if ((int)res->a0 == PSCI_RET_INVALID_PARAMS) > > + return -EINVAL; > > + if ((int)res->a0 < 0) > > + return -EIO; In fixing this I found drivers/firmware/psci/psci.c:145 Which also translates psci codes to errno codes, but uses EOPNOTSUPP: switch (errno) { case PSCI_RET_SUCCESS: return 0; case PSCI_RET_NOT_SUPPORTED: return -EOPNOTSUPP; case PSCI_RET_INVALID_PARAMS: case PSCI_RET_INVALID_ADDRESS: return -EINVAL; case PSCI_RET_DENIED: return -EPERM; }; return -EINVAL; Are these more appropriate? Evan