RE: [PATCH] firmware: xilinx: use u32 for reset ID in reset APIs

From: Thangaraj, Senthil Nathan
Date: Mon Sep 09 2024 - 13:59:15 EST


LGTM.

Best regards,
Senthil

> -----Original Message-----
> From: linux-arm-kernel <linux-arm-kernel-bounces@xxxxxxxxxxxxxxxxxxx> On
> Behalf Of Ronak Jain
> Sent: Friday, August 30, 2024 3:01 AM
> To: Simek, Michal <michal.simek@xxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH] firmware: xilinx: use u32 for reset ID in reset APIs
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> Refactors the reset handling mechanisms by replacing the reset ID's enum type
> with a u32. This update improves flexibility, allowing the reset ID to
> accommodate a broader range of values, including those that may not fit into
> predefined enum values.
>
> The use of u32 for reset ID enhances extensibility, especially for hardware
> platforms or features where more granular control of reset operations is
> required. By shifting to a general integer type, this change reduces constraints
> and simplifies integration with other system components that rely on non-
> enum-based reset IDs.
>
> Signed-off-by: Ronak Jain <ronak.jain@xxxxxxx>
> ---
> drivers/firmware/xilinx/zynqmp.c | 4 ++--
> include/linux/firmware/xlnx-zynqmp.h | 9 ++++-----
> 2 files changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/firmware/xilinx/zynqmp.c
> b/drivers/firmware/xilinx/zynqmp.c
> index add8acf66a9c..c8be32d9c6af 100644
> --- a/drivers/firmware/xilinx/zynqmp.c
> +++ b/drivers/firmware/xilinx/zynqmp.c
> @@ -920,7 +920,7 @@ int zynqmp_pm_set_boot_health_status(u32 value)
> *
> * Return: Returns status, either success or error+reason
> */
> -int zynqmp_pm_reset_assert(const enum zynqmp_pm_reset reset,
> +int zynqmp_pm_reset_assert(const u32 reset,
> const enum zynqmp_pm_reset_action assert_flag) {
> return zynqmp_pm_invoke_fn(PM_RESET_ASSERT, NULL, 2, reset,
> assert_flag); @@ -934,7 +934,7 @@
> EXPORT_SYMBOL_GPL(zynqmp_pm_reset_assert);
> *
> * Return: Returns status, either success or error+reason
> */
> -int zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset reset, u32
> *status)
> +int zynqmp_pm_reset_get_status(const u32 reset, u32 *status)
> {
> u32 ret_payload[PAYLOAD_ARG_CNT];
> int ret;
> diff --git a/include/linux/firmware/xlnx-zynqmp.h
> b/include/linux/firmware/xlnx-zynqmp.h
> index 563382cf16f2..5b938fc2adad 100644
> --- a/include/linux/firmware/xlnx-zynqmp.h
> +++ b/include/linux/firmware/xlnx-zynqmp.h
> @@ -557,9 +557,9 @@ int zynqmp_pm_get_pll_frac_data(u32 clk_id, u32
> *data); int zynqmp_pm_set_sd_tapdelay(u32 node_id, u32 type, u32 value);
> int zynqmp_pm_sd_dll_reset(u32 node_id, u32 type); int
> zynqmp_pm_ospi_mux_select(u32 dev_id, u32 select); -int
> zynqmp_pm_reset_assert(const enum zynqmp_pm_reset reset,
> +int zynqmp_pm_reset_assert(const u32 reset,
> const enum zynqmp_pm_reset_action assert_flag); -int
> zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset reset, u32
> *status);
> +int zynqmp_pm_reset_get_status(const u32 reset, u32 *status);
> unsigned int zynqmp_pm_bootmode_read(u32 *ps_mode); int
> zynqmp_pm_bootmode_write(u32 ps_mode); int
> zynqmp_pm_init_finalize(void); @@ -702,14 +702,13 @@ static inline int
> zynqmp_pm_ospi_mux_select(u32 dev_id, u32 select)
> return -ENODEV;
> }
>
> -static inline int zynqmp_pm_reset_assert(const enum zynqmp_pm_reset
> reset,
> +static inline int zynqmp_pm_reset_assert(const u32 reset,
> const enum zynqmp_pm_reset_action assert_flag) {
> return -ENODEV;
> }
>
> -static inline int zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset
> reset,
> - u32 *status)
> +static inline int zynqmp_pm_reset_get_status(const u32 reset, u32
> +*status)
> {
> return -ENODEV;
> }
> --
> 2.25.1
>