lib: arm_ffa: Add more missing uint32_t casts am: ce576b459a

Original change: https://android-review.googlesource.com/c/trusty/lk/trusty/+/3463141

Change-Id: I5be293fc847759968586adca04c2e75934e36558
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/lib/arm_ffa/arm_ffa.c b/lib/arm_ffa/arm_ffa.c
index 446046d..e5d56ef 100644
--- a/lib/arm_ffa/arm_ffa.c
+++ b/lib/arm_ffa/arm_ffa.c
@@ -211,7 +211,8 @@
     /* FRAG_RX is followed by FRAG_TX on successful completion. */
     switch ((uint32_t)smc_ret.r0) {
     case SMC_FC_FFA_MEM_FRAG_TX: {
-        uint64_t handle_out = smc_ret.r1 + ((uint64_t)smc_ret.r2 << 32);
+        uint64_t handle_out =
+                (uint32_t)smc_ret.r1 | ((uint64_t)(uint32_t)smc_ret.r2 << 32);
         if (handle != handle_out) {
             TRACEF("Handle for response doesn't match the request, %" PRId64
                    " != %" PRId64,
@@ -416,7 +417,7 @@
     uint32_t flags;
 
     DEBUG_ASSERT(direct_req_regs);
-    switch (direct_req_regs->r0) {
+    switch ((uint32_t)direct_req_regs->r0) {
     case SMC_FC_FFA_MSG_SEND_DIRECT_REQ:
         fid = SMC_FC_FFA_MSG_SEND_DIRECT_RESP;
         break;
@@ -430,8 +431,8 @@
     }
 
     /* Copy and flip the sender from the direct message request */
-    sender_receiver_id =
-            (direct_req_regs->r1 >> 16) | ((uint32_t)ffa_local_id << 16);
+    sender_receiver_id = ((uint32_t)direct_req_regs->r1 >> 16) |
+                         ((uint32_t)ffa_local_id << 16);
     /* Copy the flags as well */
     flags = direct_req_regs->r2;