This pull request contains patches that enable PSCI 1.0 firmware features for arm/arm64 platforms: - Lorenzo Pieralisi adds support for the PSCI_FEATURES call, manages various 1.0 specifications updates (power state id and functions return values) and provides PSCI v1.0 DT bindings - Sudeep Holla implements PSCI v1.0 system suspend support to enable PSCI based suspend-to-RAM * tag 'firmware/psci-1.0' of git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux: drivers: firmware: psci: add system suspend support drivers: firmware: psci: define more generic PSCI_FN_NATIVE macro drivers: firmware: psci: add PSCI v1.0 DT bindings drivers: firmware: psci: add extended stateid power_state support drivers: firmware: psci: add PSCI_FEATURES call drivers: firmware: psci: move power_state handling to generic code drivers: firmware: psci: add INVALID_ADDRESS return value
Showing the changes to include/uapi (1 of 5 files). Show all
Unified · Split
| @@ -46,6 +46,11 @@ · 45 unmodified lines | ||
| 46 | 46 | #define PSCI_0_2_FN64_MIGRATE PSCI_0_2_FN64(5) |
| 47 | 47 | #define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7) |
| 48 | 48 | |
| 49 | +#define PSCI_1_0_FN_PSCI_FEATURES PSCI_0_2_FN(10) | |
| 50 | +#define PSCI_1_0_FN_SYSTEM_SUSPEND PSCI_0_2_FN(14) | |
| 51 | + | |
| 52 | +#define PSCI_1_0_FN64_SYSTEM_SUSPEND PSCI_0_2_FN64(14) | |
| 53 | + | |
| 49 | 54 | /* PSCI v0.2 power state encoding for CPU_SUSPEND function */ |
| 50 | 55 | #define PSCI_0_2_POWER_STATE_ID_MASK 0xffff |
| 51 | 56 | #define PSCI_0_2_POWER_STATE_ID_SHIFT 0 |
| @@ -56,6 +61,13 @@ · 4 unmodified lines | ||
| 56 | 61 | #define PSCI_0_2_POWER_STATE_AFFL_MASK \ |
| 57 | 62 | (0x3 << PSCI_0_2_POWER_STATE_AFFL_SHIFT) |
| 58 | 63 | |
| 64 | +/* PSCI extended power state encoding for CPU_SUSPEND function */ | |
| 65 | +#define PSCI_1_0_EXT_POWER_STATE_ID_MASK 0xfffffff | |
| 66 | +#define PSCI_1_0_EXT_POWER_STATE_ID_SHIFT 0 | |
| 67 | +#define PSCI_1_0_EXT_POWER_STATE_TYPE_SHIFT 30 | |
| 68 | +#define PSCI_1_0_EXT_POWER_STATE_TYPE_MASK \ | |
| 69 | + (0x1 << PSCI_1_0_EXT_POWER_STATE_TYPE_SHIFT) | |
| 70 | + | |
| 59 | 71 | /* PSCI v0.2 affinity level state returned by AFFINITY_INFO */ |
| 60 | 72 | #define PSCI_0_2_AFFINITY_LEVEL_ON 0 |
| 61 | 73 | #define PSCI_0_2_AFFINITY_LEVEL_OFF 1 |
| @@ -76,6 +88,11 @@ · 14 unmodified lines | ||
| 76 | 88 | #define PSCI_VERSION_MINOR(ver) \ |
| 77 | 89 | ((ver) & PSCI_VERSION_MINOR_MASK) |
| 78 | 90 | |
| 91 | +/* PSCI features decoding (>=1.0) */ | |
| 92 | +#define PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT 1 | |
| 93 | +#define PSCI_1_0_FEATURES_CPU_SUSPEND_PF_MASK \ | |
| 94 | + (0x1 << PSCI_1_0_FEATURES_CPU_SUSPEND_PF_SHIFT) | |
| 95 | + | |
| 79 | 96 | /* PSCI return values (inclusive of all PSCI versions) */ |
| 80 | 97 | #define PSCI_RET_SUCCESS 0 |
| 81 | 98 | #define PSCI_RET_NOT_SUPPORTED -1 |
| @@ -86,5 +103,6 @@ · 4 unmodified lines | ||
| 86 | 103 | #define PSCI_RET_INTERNAL_FAILURE -6 |
| 87 | 104 | #define PSCI_RET_NOT_PRESENT -7 |
| 88 | 105 | #define PSCI_RET_DISABLED -8 |
| 106 | +#define PSCI_RET_INVALID_ADDRESS -9 | |
| 89 | 107 | |
| 90 | 108 | #endif /* _UAPI_LINUX_PSCI_H */ |