[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241125095251.366866-4-yeoreum.yun@arm.com>
Date: Mon, 25 Nov 2024 09:52:51 +0000
From: Yeoreum Yun <yeoreum.yun@....com>
To: sudeep.holla@....com
Cc: linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org,
nd@....com,
Levi Yun <yeoreum.yun@....com>
Subject: [PATCH 3/3] firmware/arm_ffa: remove __le64_to_cpu() when set uuid for direct msg v2
From: Levi Yun <yeoreum.yun@....com>
UUID is saved in big endian format.
i.e) For uuid "378daedc-f06b-4446-8314-40ab933c87a3",
It should be saved in memory like:
37 8d ae dc
f0 6b 44 46
83 14 40 ab
93 3c 87 a3
Accoding to FF-A specification[0] 15.4 FFA_MSG_SEND_DRIECT_REQ2,
then UUID is saved in register:
UUID Lo x2 Bytes[0...7] of UUID with byte 0 in the low-order bits.
UUID Hi x3 Bytes[8...15] of UUID with byte 8 in the low-order bits.
That means, we don't need to swap the uuid when it send via direct
message request version 2, just send it as saved in memory.
Remove le64_to_cpu() for uuid in direct message request version 2,
and change uuid_regs' type to __be64 because UUID is saved in network
byte order.
Link: https://developer.arm.com/documentation/den0077/latest [0]
Signed-off-by: Yeoreum Yun <yeoreum.yun@....com>
---
drivers/firmware/arm_ffa/driver.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c
index a3a9cdec7389..4a6bc6520d25 100644
--- a/drivers/firmware/arm_ffa/driver.c
+++ b/drivers/firmware/arm_ffa/driver.c
@@ -483,13 +483,13 @@ static int ffa_msg_send_direct_req2(u16 src_id, u16 dst_id, const uuid_t *uuid,
u32 src_dst_ids = PACK_TARGET_INFO(src_id, dst_id);
union {
uuid_t uuid;
- __le64 regs[2];
+ __be64 regs[2];
} uuid_regs = { .uuid = *uuid };
ffa_value_t ret, args = {
.a0 = FFA_MSG_SEND_DIRECT_REQ2,
.a1 = src_dst_ids,
- .a2 = le64_to_cpu(uuid_regs.regs[0]),
- .a3 = le64_to_cpu(uuid_regs.regs[1]),
+ .a2 = uuid_regs.regs[0],
+ .a3 = uuid_regs.regs[1],
};
memcpy((void *)&args + offsetof(ffa_value_t, a4), data, sizeof(*data));
--
LEVI:{C3F47F37-75D8-414A-A8BA-3980EC8A46D7}
Powered by blists - more mailing lists