[PATCH] firmware: zynqmp: fix declarations for gcc-13

Tanmay Shah tanmays at amd.com
Tue Jan 17 11:53:32 PST 2023


Hi, Thanks for your patch.


This looks good to me. Thanks for fixing this.

Something must have gone wrong when I ran sparse check on this patch.

Just one question, does this patch need "fixes:" tag?


On 1/17/23 8:41 AM, Arnd Bergmann wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
>
>
> From: Arnd Bergmann <arnd at arndb.de>
>
> gcc-13.0.1 reports a type mismatch for two functions:
>
> drivers/firmware/xilinx/zynqmp.c:1228:5: error: conflicting types for 'zynqmp_pm_set_rpu_mode' due to enum/integer mismatch; have 'int(u32,  enum rpu_oper_mode)' {aka 'int(unsigned int,  enum rpu_oper_mode)'} [-Werror=enum-int-mismatch]
>   1228 | int zynqmp_pm_set_rpu_mode(u32 node_id, enum rpu_oper_mode rpu_mode)
>        |     ^~~~~~~~~~~~~~~~~~~~~~
> In file included from drivers/firmware/xilinx/zynqmp.c:25:
> include/linux/firmware/xlnx-zynqmp.h:552:5: note: previous declaration of 'zynqmp_pm_set_rpu_mode' with type 'int(u32,  u32)' {aka 'int(unsigned int,  unsigned int)'}
>    552 | int zynqmp_pm_set_rpu_mode(u32 node_id, u32 arg1);
>        |     ^~~~~~~~~~~~~~~~~~~~~~
> drivers/firmware/xilinx/zynqmp.c:1246:5: error: conflicting types for 'zynqmp_pm_set_tcm_config' due to enum/integer mismatch; have 'int(u32,  enum rpu_tcm_comb)' {aka 'int(unsigned int,  enum rpu_tcm_comb)'} [-Werror=enum-int-mismatch]
>   1246 | int zynqmp_pm_set_tcm_config(u32 node_id, enum rpu_tcm_comb tcm_mode)
>        |     ^~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/firmware/xlnx-zynqmp.h:553:5: note: previous declaration of 'zynqmp_pm_set_tcm_config' with type 'int(u32,  u32)' {aka 'int(unsigned int,  unsigned int)'}
>    553 | int zynqmp_pm_set_tcm_config(u32 node_id, u32 arg1);
>        |     ^~~~~~~~~~~~~~~~~~~~~~~~
>
> Change the declaration in the header to match the function definition.
>
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
> ---
>   include/linux/firmware/xlnx-zynqmp.h | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
> index eb88b4ba62f9..0e4c70987e6a 100644
> --- a/include/linux/firmware/xlnx-zynqmp.h
> +++ b/include/linux/firmware/xlnx-zynqmp.h
> @@ -549,8 +549,8 @@ int zynqmp_pm_request_wake(const u32 node,
>                             const u64 address,
>                             const enum zynqmp_pm_request_ack ack);
>   int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mode);
> -int zynqmp_pm_set_rpu_mode(u32 node_id, u32 arg1);
> -int zynqmp_pm_set_tcm_config(u32 node_id, u32 arg1);
> +int zynqmp_pm_set_rpu_mode(u32 node_id, enum rpu_oper_mode rpu_mode);
> +int zynqmp_pm_set_tcm_config(u32 node_id, enum rpu_tcm_comb tcm_mode);
>   int zynqmp_pm_set_sd_config(u32 node, enum pm_sd_config_type config, u32 value);
>   int zynqmp_pm_set_gem_config(u32 node, enum pm_gem_config_type config,
>                               u32 value);
> @@ -849,12 +849,12 @@ static inline int zynqmp_pm_get_rpu_mode(u32 node_id, enum rpu_oper_mode *rpu_mo
>          return -ENODEV;
>   }
>
> -static inline int zynqmp_pm_set_rpu_mode(u32 node_id, u32 arg1)
> +static inline int zynqmp_pm_set_rpu_mode(u32 node_id, enum rpu_oper_mode rpu_mode)
>   {
>          return -ENODEV;
>   }
>
> -static inline int zynqmp_pm_set_tcm_config(u32 node_id, u32 arg1)
> +static inline int zynqmp_pm_set_tcm_config(u32 node_id, enum rpu_tcm_comb tcm_mode)
>   {
>          return -ENODEV;
>   }
> --
> 2.39.0
>



More information about the linux-arm-kernel mailing list