[PATCH] clk: fix count parameter type for clk_release_all

The second parameter for clk_release_all is used as an unsigned (which makes sense) but the function prototype declares it as an int. This causes warnings/error like such below:
include/clk.h:422:48: error: conversion to ‘int’ from ‘unsigned int’ may change the sign of the result [-Werror=sign-conversion] 422 | return clk_release_all(bulk->clks, bulk->count);
To fix this, changed the type of the count to `unsigned int`
Fixes: 82a8a669b4f7 ("clk: add clk_release_all()") Signed-off-by: Eugen Hristev eugen.hristev@collabora.com --- drivers/clk/clk-uclass.c | 7 ++++--- include/clk.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index dc3e9d6a2615..eada3a3a5b62 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -416,12 +416,13 @@ int clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return clk_get_by_index_nodev(node, index, clk); }
-int clk_release_all(struct clk *clk, int count) +int clk_release_all(struct clk *clk, unsigned int count) { - int i, ret; + unsigned int i; + int ret;
for (i = 0; i < count; i++) { - debug("%s(clk[%d]=%p)\n", __func__, i, &clk[i]); + debug("%s(clk[%u]=%p)\n", __func__, i, &clk[i]);
/* check if clock has been previously requested */ if (!clk[i].dev) diff --git a/include/clk.h b/include/clk.h index d91285235f79..a342297007b6 100644 --- a/include/clk.h +++ b/include/clk.h @@ -243,7 +243,7 @@ static inline struct clk *devm_clk_get_optional(struct udevice *dev, * * Return: zero on success, or -ve error code. */ -int clk_release_all(struct clk *clk, int count); +int clk_release_all(struct clk *clk, unsigned int count);
/** * devm_clk_put - "free" a managed clock source @@ -307,7 +307,7 @@ clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return -ENOSYS; }
-static inline int clk_release_all(struct clk *clk, int count) +static inline int clk_release_all(struct clk *clk, unsigned int count) { return -ENOSYS; }

On 6/19/23 13:47, Eugen Hristev wrote:
The second parameter for clk_release_all is used as an unsigned (which makes sense) but the function prototype declares it as an int. This causes warnings/error like such below:
include/clk.h:422:48: error: conversion to ‘int’ from ‘unsigned int’ may change the sign of the result [-Werror=sign-conversion] 422 | return clk_release_all(bulk->clks, bulk->count);
To fix this, changed the type of the count to `unsigned int`
Fixes: 82a8a669b4f7 ("clk: add clk_release_all()") Signed-off-by: Eugen Hristev eugen.hristev@collabora.com
drivers/clk/clk-uclass.c | 7 ++++--- include/clk.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index dc3e9d6a2615..eada3a3a5b62 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -416,12 +416,13 @@ int clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return clk_get_by_index_nodev(node, index, clk); }
-int clk_release_all(struct clk *clk, int count) +int clk_release_all(struct clk *clk, unsigned int count) {
- int i, ret;
unsigned int i;
int ret;
for (i = 0; i < count; i++) {
debug("%s(clk[%d]=%p)\n", __func__, i, &clk[i]);
debug("%s(clk[%u]=%p)\n", __func__, i, &clk[i]);
/* check if clock has been previously requested */ if (!clk[i].dev)
diff --git a/include/clk.h b/include/clk.h index d91285235f79..a342297007b6 100644 --- a/include/clk.h +++ b/include/clk.h @@ -243,7 +243,7 @@ static inline struct clk *devm_clk_get_optional(struct udevice *dev,
- Return: zero on success, or -ve error code.
*/ -int clk_release_all(struct clk *clk, int count); +int clk_release_all(struct clk *clk, unsigned int count);
/**
- devm_clk_put - "free" a managed clock source
@@ -307,7 +307,7 @@ clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return -ENOSYS; }
-static inline int clk_release_all(struct clk *clk, int count) +static inline int clk_release_all(struct clk *clk, unsigned int count) { return -ENOSYS; }
Hi,
gentle ping.
Thanks, Eugen

El Mon, Jun 19, 2023 at 01:47:52PM +0300, Eugen Hristev deia:
The second parameter for clk_release_all is used as an unsigned (which makes sense) but the function prototype declares it as an int. This causes warnings/error like such below:
include/clk.h:422:48: error: conversion to ‘int’ from ‘unsigned int’ may change the sign of the result [-Werror=sign-conversion] 422 | return clk_release_all(bulk->clks, bulk->count);
To fix this, changed the type of the count to `unsigned int`
Fixes: 82a8a669b4f7 ("clk: add clk_release_all()") Signed-off-by: Eugen Hristev eugen.hristev@collabora.com
Reviewed-by: Xavier Drudis Ferran xdrudis@tinet.cat
drivers/clk/clk-uclass.c | 7 ++++--- include/clk.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index dc3e9d6a2615..eada3a3a5b62 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -416,12 +416,13 @@ int clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return clk_get_by_index_nodev(node, index, clk); }
-int clk_release_all(struct clk *clk, int count) +int clk_release_all(struct clk *clk, unsigned int count) {
- int i, ret;
- unsigned int i;
- int ret;
This could also be changed in clk_enable_blk() and clk_disable_blk(). It's unlikely that we get so many clocks for it to matter, but it's till wrong to compare int i to unsigned int bulk->count. That'd be a different patch, though.
for (i = 0; i < count; i++) {
debug("%s(clk[%d]=%p)\n", __func__, i, &clk[i]);
debug("%s(clk[%u]=%p)\n", __func__, i, &clk[i]);
/* check if clock has been previously requested */ if (!clk[i].dev)
diff --git a/include/clk.h b/include/clk.h index d91285235f79..a342297007b6 100644 --- a/include/clk.h +++ b/include/clk.h @@ -243,7 +243,7 @@ static inline struct clk *devm_clk_get_optional(struct udevice *dev,
- Return: zero on success, or -ve error code.
*/ -int clk_release_all(struct clk *clk, int count); +int clk_release_all(struct clk *clk, unsigned int count);
/**
- devm_clk_put - "free" a managed clock source
@@ -307,7 +307,7 @@ clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return -ENOSYS; }
-static inline int clk_release_all(struct clk *clk, int count) +static inline int clk_release_all(struct clk *clk, unsigned int count) { return -ENOSYS; } -- 2.34.1

On 6/19/23 06:47, Eugen Hristev wrote:
The second parameter for clk_release_all is used as an unsigned (which makes sense) but the function prototype declares it as an int. This causes warnings/error like such below:
include/clk.h:422:48: error: conversion to ‘int’ from ‘unsigned int’ may change the sign of the result [-Werror=sign-conversion] 422 | return clk_release_all(bulk->clks, bulk->count);
To fix this, changed the type of the count to `unsigned int`
Fixes: 82a8a669b4f7 ("clk: add clk_release_all()") Signed-off-by: Eugen Hristev eugen.hristev@collabora.com
drivers/clk/clk-uclass.c | 7 ++++--- include/clk.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index dc3e9d6a2615..eada3a3a5b62 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -416,12 +416,13 @@ int clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return clk_get_by_index_nodev(node, index, clk); }
-int clk_release_all(struct clk *clk, int count) +int clk_release_all(struct clk *clk, unsigned int count) {
- int i, ret;
unsigned int i;
int ret;
for (i = 0; i < count; i++) {
debug("%s(clk[%d]=%p)\n", __func__, i, &clk[i]);
debug("%s(clk[%u]=%p)\n", __func__, i, &clk[i]);
/* check if clock has been previously requested */ if (!clk[i].dev)
diff --git a/include/clk.h b/include/clk.h index d91285235f79..a342297007b6 100644 --- a/include/clk.h +++ b/include/clk.h @@ -243,7 +243,7 @@ static inline struct clk *devm_clk_get_optional(struct udevice *dev,
- Return: zero on success, or -ve error code.
*/ -int clk_release_all(struct clk *clk, int count); +int clk_release_all(struct clk *clk, unsigned int count);
/**
- devm_clk_put - "free" a managed clock source
@@ -307,7 +307,7 @@ clk_get_by_name_nodev(ofnode node, const char *name, struct clk *clk) return -ENOSYS; }
-static inline int clk_release_all(struct clk *clk, int count) +static inline int clk_release_all(struct clk *clk, unsigned int count) { return -ENOSYS; }
Reviewed-by: Sean Anderson seanga2@gmail.com

On Mon, 19 Jun 2023 13:47:52 +0300, Eugen Hristev wrote:
The second parameter for clk_release_all is used as an unsigned (which makes sense) but the function prototype declares it as an int. This causes warnings/error like such below:
include/clk.h:422:48: error: conversion to ‘int’ from ‘unsigned int’ may change the sign of the result [-Werror=sign-conversion] 422 | return clk_release_all(bulk->clks, bulk->count);
[...]
Applied, thanks!
[1/1] clk: fix count parameter type for clk_release_all commit: b6a56f553318b4c0c8fb8b1ea05f2e15b2662ccb
Best regards,
participants (3)
-
Eugen Hristev
-
Sean Anderson
-
Xavier Drudis Ferran