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:
committed by
Jon Mason
parent
1ce52a31ae
commit
ad88391e95
@@ -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"
|
||||
|
||||
+29
@@ -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
|
||||
|
||||
+33
@@ -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
|
||||
|
||||
+30
@@ -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
|
||||
|
||||
+54
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user