summaryrefslogtreecommitdiffstats
path: root/src/occ_gpe0/apss_util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/occ_gpe0/apss_util.c')
-rw-r--r--src/occ_gpe0/apss_util.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/occ_gpe0/apss_util.c b/src/occ_gpe0/apss_util.c
index 4e9082f..a742be3 100644
--- a/src/occ_gpe0/apss_util.c
+++ b/src/occ_gpe0/apss_util.c
@@ -170,5 +170,27 @@ void busy_wait(uint32_t t_microseconds)
while (current_decrementer_value > end_decrementer_value) // Wait until end_decrementer_value is reached
MFDEC(current_decrementer_value);
+}
+
+void ipc_scom_operation(ipc_msg_t* cmd, void* arg)
+{
+ int l_rc;
+ ipc_async_cmd_t *async_cmd = (ipc_async_cmd_t*)cmd;
+ ipc_scom_op_t *scom_op = (ipc_scom_op_t*) async_cmd->cmd_data;
+ if (scom_op->read)
+ {
+ l_rc = getscom_abs(scom_op->addr, &scom_op->data);
+ }
+ else
+ {
+ l_rc = putscom_abs(scom_op->addr, scom_op->data);
+ }
+
+ if(l_rc)
+ {
+ scom_op->rc = l_rc;
+ PK_TRACE("Error doing generic scom! RC: 0x%08X Addr: 0x%08X Read: %d Data: 0x%08X", l_rc,
+ scom_op->addr, scom_op->read, scom_op->data);
+ }
}
OpenPOWER on IntegriCloud