Eliminate psci_suspend_context array

psci_suspend_context is an array of cache-line aligned structures
containing the single power_state integer per cpu. This array is
the only structure indexed by the aff_map_node.data integer.

This patch saves 2KB of BL3-1 memory by placing the CPU
power_state value directly in the aff_map_node structure. As a
result, this value is now never cached and the cache clean when
writing the value is no longer required.

Fixes ARM-software/tf-issues#195

Change-Id: Ib4c70c8f79eed295ea541e7827977a588a19ef9b
diff --git a/services/std_svc/psci/psci_private.h b/services/std_svc/psci/psci_private.h
index 970ad21..08a4a34 100644
--- a/services/std_svc/psci/psci_private.h
+++ b/services/std_svc/psci/psci_private.h
@@ -44,7 +44,7 @@
 	unsigned short ref_count;
 	unsigned char state;
 	unsigned char level;
-	unsigned int data;
+	unsigned int power_state;
 	bakery_lock_t lock;
 } aff_map_node_t;
 
@@ -53,14 +53,6 @@
 	int max;
 } aff_limits_node_t;
 
-/*******************************************************************************
- * This data structure holds secure world context that needs to be preserved
- * across cpu_suspend calls which enter the power down state.
- ******************************************************************************/
-typedef struct suspend_context {
-	unsigned int power_state;
-} __aligned(CACHE_WRITEBACK_GRANULE) suspend_context_t;
-
 typedef aff_map_node_t (*mpidr_aff_map_nodes_t[MPIDR_MAX_AFFLVL]);
 typedef unsigned int (*afflvl_power_on_finisher_t)(unsigned long,
 						 aff_map_node_t *);
@@ -68,7 +60,6 @@
 /*******************************************************************************
  * Data prototypes
  ******************************************************************************/
-extern suspend_context_t psci_suspend_context[PSCI_NUM_AFFS];
 extern const plat_pm_ops_t *psci_plat_pm_ops;
 extern aff_map_node_t psci_aff_map[PSCI_NUM_AFFS];