2023-05-03 05:06:51

by Manne, Nava kishore

[permalink] [raw]
Subject: [PATCH] firmware: xilinx: Update the zynqmp_pm_fpga_load() API

Update the zynqmp_pm_fpga_load() API to handle the firmware error’s
properly.

Signed-off-by: Nava kishore Manne <[email protected]>
---
drivers/firmware/xilinx/zynqmp.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
index ce86a1850305..398ab86e2bec 100644
--- a/drivers/firmware/xilinx/zynqmp.c
+++ b/drivers/firmware/xilinx/zynqmp.c
@@ -942,8 +942,16 @@ EXPORT_SYMBOL_GPL(zynqmp_pm_reset_get_status);
*/
int zynqmp_pm_fpga_load(const u64 address, const u32 size, const u32 flags)
{
- return zynqmp_pm_invoke_fn(PM_FPGA_LOAD, lower_32_bits(address),
- upper_32_bits(address), size, flags, NULL);
+ u32 ret_payload[PAYLOAD_ARG_CNT];
+ int ret;
+
+ ret = zynqmp_pm_invoke_fn(PM_FPGA_LOAD, lower_32_bits(address),
+ upper_32_bits(address), size, flags,
+ ret_payload);
+ if (ret_payload[0])
+ return -ret_payload[0];
+
+ return ret;
}
EXPORT_SYMBOL_GPL(zynqmp_pm_fpga_load);

--
2.25.1


2023-05-12 11:42:40

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH] firmware: xilinx: Update the zynqmp_pm_fpga_load() API



On 5/3/23 07:01, Nava kishore Manne wrote:
> Update the zynqmp_pm_fpga_load() API to handle the firmware error’s
> properly.
>
> Signed-off-by: Nava kishore Manne <[email protected]>
> ---
> drivers/firmware/xilinx/zynqmp.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
> index ce86a1850305..398ab86e2bec 100644
> --- a/drivers/firmware/xilinx/zynqmp.c
> +++ b/drivers/firmware/xilinx/zynqmp.c
> @@ -942,8 +942,16 @@ EXPORT_SYMBOL_GPL(zynqmp_pm_reset_get_status);
> */
> int zynqmp_pm_fpga_load(const u64 address, const u32 size, const u32 flags)
> {
> - return zynqmp_pm_invoke_fn(PM_FPGA_LOAD, lower_32_bits(address),
> - upper_32_bits(address), size, flags, NULL);
> + u32 ret_payload[PAYLOAD_ARG_CNT];
> + int ret;
> +
> + ret = zynqmp_pm_invoke_fn(PM_FPGA_LOAD, lower_32_bits(address),
> + upper_32_bits(address), size, flags,
> + ret_payload);
> + if (ret_payload[0])
> + return -ret_payload[0];
> +
> + return ret;
> }
> EXPORT_SYMBOL_GPL(zynqmp_pm_fpga_load);
>

Applied.
M