2022-10-31 11:58:52

by Jiri Slaby

[permalink] [raw]
Subject: [PATCH] thunderbolt (gcc13): synchronize tb_port_is_clx_enabled()'s 2nd param

tb_port_is_clx_enabled() generates a valid warning with gcc-13:
drivers/thunderbolt/switch.c:1286:6: error: conflicting types for 'tb_port_is_clx_enabled' due to enum/integer mismatch; have 'bool(struct tb_port *, unsigned int)' ...
drivers/thunderbolt/tb.h:1050:6: note: previous declaration of 'tb_port_is_clx_enabled' with type 'bool(struct tb_port *, enum tb_clx)' ...

I.e. the type of the 2nd parameter of tb_port_is_clx_enabled() in the
declaration is unsigned int, while the definition spells enum tb_clx.
Synchronize them to the latter. And do the same for
tb_port_clx_supported() where the enum is propagated.

Cc: Martin Liska <[email protected]>
Cc: Andreas Noever <[email protected]>
Cc: Michael Jamet <[email protected]>
Cc: Mika Westerberg <[email protected]>
Cc: Yehezkel Bernat <[email protected]>
Cc: [email protected]
Signed-off-by: Jiri Slaby (SUSE) <[email protected]>
---
drivers/thunderbolt/switch.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index 363d712aa364..3693395253bb 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -1205,7 +1205,7 @@ static int tb_port_pm_secondary_disable(struct tb_port *port)
}

/* Called for USB4 or Titan Ridge routers only */
-static bool tb_port_clx_supported(struct tb_port *port, unsigned int clx_mask)
+static bool tb_port_clx_supported(struct tb_port *port, enum tb_clx clx_mask)
{
u32 val, mask = 0;
bool ret;
@@ -1283,7 +1283,7 @@ static int tb_port_clx_enable(struct tb_port *port, enum tb_clx clx)
*
* Returns true if any of the given CL states is enabled for @port.
*/
-bool tb_port_is_clx_enabled(struct tb_port *port, unsigned int clx_mask)
+bool tb_port_is_clx_enabled(struct tb_port *port, enum tb_clx clx_mask)
{
u32 val, mask = 0;
int ret;
--
2.38.1



2022-10-31 12:58:17

by Mika Westerberg

[permalink] [raw]
Subject: Re: [PATCH] thunderbolt (gcc13): synchronize tb_port_is_clx_enabled()'s 2nd param

Hi,

On Mon, Oct 31, 2022 at 12:43:23PM +0100, Jiri Slaby (SUSE) wrote:
> tb_port_is_clx_enabled() generates a valid warning with gcc-13:
> drivers/thunderbolt/switch.c:1286:6: error: conflicting types for 'tb_port_is_clx_enabled' due to enum/integer mismatch; have 'bool(struct tb_port *, unsigned int)' ...
> drivers/thunderbolt/tb.h:1050:6: note: previous declaration of 'tb_port_is_clx_enabled' with type 'bool(struct tb_port *, enum tb_clx)' ...
>
> I.e. the type of the 2nd parameter of tb_port_is_clx_enabled() in the
> declaration is unsigned int, while the definition spells enum tb_clx.
> Synchronize them to the latter. And do the same for
> tb_port_clx_supported() where the enum is propagated.

Actually in both places we want to have bitmask of possible states so I
think unsigned int is the right one here.