On 10/14/21 14:43, Adrian Fiergolski wrote:
This patch fixes xilinx_pm_request to return a valid status from
xilinx_pm_request in EL2.

Signed-off-by: Adrian Fiergolski <adrian.fiergol...@fastree3d.com>
---
  drivers/firmware/firmware-zynqmp.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/firmware/firmware-zynqmp.c 
b/drivers/firmware/firmware-zynqmp.c
index 8273437dd9..34ad7fb985 100644
--- a/drivers/firmware/firmware-zynqmp.c
+++ b/drivers/firmware/firmware-zynqmp.c
@@ -208,7 +208,7 @@ int __maybe_unused xilinx_pm_request(u32 api_id, u32 arg0, 
u32 arg1, u32 arg2,
                        ret_payload[4] = (u32)regs.regs[2];
                }
- ret = (ret_payload) ? ret_payload[0] : 0;
+               ret = (int)regs.regs[0];
        }
        return ret;
  }



I have tested this series and our expectation that regs.regs[0] is return value is not unfortunately correct. mmio_read/write are not aligned to it. And when you try to boot you will see hang without any message.

I sent 2 patches as suggestion how we could do it via ipi_req().
Please take a look at it and let me know your opinion.

Thanks,
Michal

Reply via email to