1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-05-08 05:09:56 +00:00

arm-bsp/linux: TC: Add fixes in FFA driver

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I43498b3e66651d4ed8d2cedb7455f678ddf012d1
Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Arunachalam Ganapathy
2022-05-04 17:58:18 +01:00
committed by Jon Mason
parent 1ce52a31ae
commit ad88391e95
5 changed files with 150 additions and 0 deletions
@@ -166,6 +166,10 @@ SRC_URI:append:tc = " \
file://0028-perf-arm-cmn-Demarcate-CMN-600-specifics.patch \
file://0029-perf-arm-cmn-Support-new-IP-features.patch \
file://0030-perf-arm-cmn-Add-CI-700-Support.patch \
file://0031-firmware-arm_ffa-Fix-uuid-argument-passed-to-ffa_par.patch \
file://0032-firmware-arm_ffa-Add-ffa_dev_get_drvdata.patch \
file://0033-firmware-arm_ffa-extern-ffa_bus_type.patch \
file://0034-firmware-arm_ffa-Fix-FFA_MEM_SHARE-and-FFA_MEM_FRAG_.patch \
"
KERNEL_FEATURES:append:tc = " bsp/arm-platforms/tc.scc"
KERNEL_FEATURES:append:tc1 = " bsp/arm-platforms/tc-autofdo.scc"
@@ -0,0 +1,29 @@
From 4d0a8147477699d40a02f121e7c72b21547273cf Mon Sep 17 00:00:00 2001
From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Date: Thu, 13 Jan 2022 20:14:25 +0000
Subject: [PATCH 19/32] firmware: arm_ffa: Fix uuid argument passed to
ffa_partition_probe
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Ib2749ec3e02da5bb6d835f7dbf2d608c41fad1f2
Upstream-Status: Pending [Not submitted to upstream yet]
---
drivers/firmware/arm_ffa/driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c
index 14f900047ac0..8fa1785afd42 100644
--- a/drivers/firmware/arm_ffa/driver.c
+++ b/drivers/firmware/arm_ffa/driver.c
@@ -582,7 +582,7 @@ static int ffa_partition_info_get(const char *uuid_str,
return -ENODEV;
}
- count = ffa_partition_probe(&uuid_null, &pbuf);
+ count = ffa_partition_probe(&uuid, &pbuf);
if (count <= 0)
return -ENOENT;
--
2.30.2
@@ -0,0 +1,33 @@
From 9acd4425667e240603ec196d8b64b2b25879805e Mon Sep 17 00:00:00 2001
From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Date: Thu, 13 Jan 2022 22:22:28 +0000
Subject: [PATCH 20/32] firmware: arm_ffa: Add ffa_dev_get_drvdata
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Icd09d686cab9922563b1deda5276307ea5d94923
Upstream-Status: Pending [Not submitted to upstream yet]
---
include/linux/arm_ffa.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/linux/arm_ffa.h b/include/linux/arm_ffa.h
index 85651e41ded8..e5c76c1ef9ed 100644
--- a/include/linux/arm_ffa.h
+++ b/include/linux/arm_ffa.h
@@ -38,7 +38,12 @@ struct ffa_driver {
static inline void ffa_dev_set_drvdata(struct ffa_device *fdev, void *data)
{
- fdev->dev.driver_data = data;
+ dev_set_drvdata(&fdev->dev, data);
+}
+
+static inline void *ffa_dev_get_drvdata(struct ffa_device *fdev)
+{
+ return dev_get_drvdata(&fdev->dev);
}
#if IS_REACHABLE(CONFIG_ARM_FFA_TRANSPORT)
--
2.30.2
@@ -0,0 +1,30 @@
From 7a9298916fe892ddac5fe4e0a13a566b1636f542 Mon Sep 17 00:00:00 2001
From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Date: Thu, 13 Jan 2022 22:23:52 +0000
Subject: [PATCH 21/32] firmware: arm_ffa: extern ffa_bus_type
extern ffa_bus_type so that SP driver can use it in bus_find_device call.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Ib7a6a563aa35627a545f82c796816a5f72c80d70
Upstream-Status: Pending [Not submitted to upstream yet]
---
include/linux/arm_ffa.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/arm_ffa.h b/include/linux/arm_ffa.h
index e5c76c1ef9ed..4eb7e03ca560 100644
--- a/include/linux/arm_ffa.h
+++ b/include/linux/arm_ffa.h
@@ -88,6 +88,8 @@ const struct ffa_dev_ops *ffa_dev_ops_get(struct ffa_device *dev)
#define ffa_unregister(driver) \
ffa_driver_unregister(driver)
+extern struct bus_type ffa_bus_type;
+
/**
* module_ffa_driver() - Helper macro for registering a psa_ffa driver
* @__ffa_driver: ffa_driver structure
--
2.30.2
@@ -0,0 +1,54 @@
From e0b9971db819fb9ed9b08a5d3f6f2a4565e92a1a Mon Sep 17 00:00:00 2001
From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Date: Fri, 14 Jan 2022 12:23:04 +0000
Subject: [PATCH 22/32] firmware: arm_ffa: Fix FFA_MEM_SHARE and
FFA_MEM_FRAG_TX
FFA memory share on success might return FFA_MEM_FRAG_RX. In that case
set handle from w1/w2 from FFA return value.
FFA_MEM_FRAG_TX call will return FFA_SUCCESS for the last fragment, so
check for this return code.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I7ef44742d53a9e75d8587d1213be98a1352f16d4
Upstream-Status: Pending [Not submitted to upstream yet]
---
drivers/firmware/arm_ffa/driver.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/firmware/arm_ffa/driver.c b/drivers/firmware/arm_ffa/driver.c
index 8fa1785afd42..a3b1df6d7f3c 100644
--- a/drivers/firmware/arm_ffa/driver.c
+++ b/drivers/firmware/arm_ffa/driver.c
@@ -398,11 +398,15 @@ static int ffa_mem_first_frag(u32 func_id, phys_addr_t buf, u32 buf_sz,
if (ret.a0 == FFA_ERROR)
return ffa_to_linux_errno((int)ret.a2);
- if (ret.a0 != FFA_SUCCESS)
+ if (ret.a0 != FFA_SUCCESS && ret.a0 != FFA_MEM_FRAG_RX)
return -EOPNOTSUPP;
- if (handle)
- *handle = PACK_HANDLE(ret.a2, ret.a3);
+ if (handle) {
+ if (ret.a0 == FFA_MEM_FRAG_RX)
+ *handle = PACK_HANDLE(ret.a1, ret.a2);
+ else
+ *handle = PACK_HANDLE(ret.a2, ret.a3);
+ }
return frag_len;
}
@@ -426,7 +430,7 @@ static int ffa_mem_next_frag(u64 handle, u32 frag_len)
if (ret.a0 == FFA_ERROR)
return ffa_to_linux_errno((int)ret.a2);
- if (ret.a0 != FFA_MEM_FRAG_RX)
+ if (ret.a0 != FFA_SUCCESS && ret.a0 != FFA_MEM_FRAG_RX)
return -EOPNOTSUPP;
return ret.a3;
--
2.30.2