]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
firmware: xilinx: Dont send linux address to get fpga config get status
authorSiva Durga Prasad Paladugu <siva.durga.prasad.paladugu@amd.com>
Fri, 7 Feb 2025 05:49:51 +0000 (11:19 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:13:19 +0000 (11:13 +0200)
[ Upstream commit 5abc174016052caff1bcf4cedb159bd388411e98 ]

Fpga get config status just returns status through ret_payload and there
is no need to allocate local buf and send its address through SMC args.
Moreover, the address that is being passed till now is linux virtual
address and is incorrect.
Corresponding modification has been done in the firmware to avoid using the
address sent by linux.

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.prasad.paladugu@amd.com>
Signed-off-by: Nava kishore Manne <nava.kishore.manne@amd.com>
Link: https://lore.kernel.org/r/20250207054951.1650534-1-nava.kishore.manne@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/firmware/xilinx/zynqmp.c

index 720fa8b5d8e95d9828151a1ed02e5f9a23fc506c..7356e860e65ce236d5e7020bb8ec648138ff376e 100644 (file)
@@ -1139,17 +1139,13 @@ EXPORT_SYMBOL_GPL(zynqmp_pm_fpga_get_status);
 int zynqmp_pm_fpga_get_config_status(u32 *value)
 {
        u32 ret_payload[PAYLOAD_ARG_CNT];
-       u32 buf, lower_addr, upper_addr;
        int ret;
 
        if (!value)
                return -EINVAL;
 
-       lower_addr = lower_32_bits((u64)&buf);
-       upper_addr = upper_32_bits((u64)&buf);
-
        ret = zynqmp_pm_invoke_fn(PM_FPGA_READ, ret_payload, 4,
-                                 XILINX_ZYNQMP_PM_FPGA_CONFIG_STAT_OFFSET, lower_addr, upper_addr,
+                                 XILINX_ZYNQMP_PM_FPGA_CONFIG_STAT_OFFSET, 0, 0,
                                  XILINX_ZYNQMP_PM_FPGA_READ_CONFIG_REG);
 
        *value = ret_payload[1];