* [PATCH 12/33] clk: bcm2835: use match_string() helper
[not found] <1526903890-35761-1-git-send-email-xieyisheng1@huawei.com>
@ 2018-05-21 11:57 ` Yisheng Xie
2018-05-21 17:48 ` Eric Anholt
2018-05-21 21:50 ` Andy Shevchenko
2018-05-21 11:57 ` [PATCH 13/33] clk: rockchip: " Yisheng Xie
2018-05-21 11:57 ` [PATCH 14/33] clk: " Yisheng Xie
2 siblings, 2 replies; 8+ messages in thread
From: Yisheng Xie @ 2018-05-21 11:57 UTC (permalink / raw)
To: linux-kernel
Cc: Yisheng Xie, Michael Turquette, Stephen Boyd, Eric Anholt,
Stefan Wahren, linux-clk, linux-rpi-kernel, linux-arm-kernel
match_string() returns the index of an array for a matching string,
which can be used intead of open coded variant.
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Eric Anholt <eric@anholt.net>
Cc: Stefan Wahren <stefan.wahren@i2se.com>
Cc: linux-clk@vger.kernel.org
Cc: linux-rpi-kernel@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
---
drivers/clk/bcm/clk-bcm2835.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
index fa0d5c8..a27c0d2 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1395,8 +1395,7 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman,
struct bcm2835_clock *clock;
struct clk_init_data init;
const char *parents[1 << CM_SRC_BITS];
- size_t i, j;
- int ret;
+ int i, ret;
/*
* Replace our strings referencing parent clocks with the
@@ -1405,12 +1404,11 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman,
for (i = 0; i < data->num_mux_parents; i++) {
parents[i] = data->parents[i];
- for (j = 0; j < ARRAY_SIZE(cprman_parent_names); j++) {
- if (strcmp(parents[i], cprman_parent_names[j]) == 0) {
- parents[i] = cprman->real_parent_names[j];
- break;
- }
- }
+ ret = match_string(cprman_parent_names,
+ ARRAY_SIZE(cprman_parent_names),
+ parents[i]);
+ if (ret >= 0)
+ parents[i] = cprman->real_parent_names[ret];
}
memset(&init, 0, sizeof(init));
--
1.7.12.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 13/33] clk: rockchip: use match_string() helper
[not found] <1526903890-35761-1-git-send-email-xieyisheng1@huawei.com>
2018-05-21 11:57 ` [PATCH 12/33] clk: bcm2835: use match_string() helper Yisheng Xie
@ 2018-05-21 11:57 ` Yisheng Xie
2018-05-22 13:56 ` Heiko Stuebner
2018-05-21 11:57 ` [PATCH 14/33] clk: " Yisheng Xie
2 siblings, 1 reply; 8+ messages in thread
From: Yisheng Xie @ 2018-05-21 11:57 UTC (permalink / raw)
To: linux-kernel
Cc: Yisheng Xie, Michael Turquette, Stephen Boyd, Heiko Stuebner,
linux-clk, linux-arm-kernel, linux-rockchip
match_string() returns the index of an array for a matching string,
which can be used intead of open coded variant.
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: linux-clk@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
---
drivers/clk/rockchip/clk.c | 16 +++++-----------
1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c
index 3cd8ad5..514032d 100644
--- a/drivers/clk/rockchip/clk.c
+++ b/drivers/clk/rockchip/clk.c
@@ -274,18 +274,10 @@ static struct clk *rockchip_clk_register_frac_branch(
struct clk_mux *frac_mux = &frac->mux;
struct clk_init_data init;
struct clk *mux_clk;
- int i, ret;
-
- frac->mux_frac_idx = -1;
- for (i = 0; i < child->num_parents; i++) {
- if (!strcmp(name, child->parent_names[i])) {
- pr_debug("%s: found fractional parent in mux at pos %d\n",
- __func__, i);
- frac->mux_frac_idx = i;
- break;
- }
- }
+ int ret;
+ frac->mux_frac_idx = match_string(child->parent_names,
+ child->num_parents, name);
frac->mux_ops = &clk_mux_ops;
frac->clk_nb.notifier_call = rockchip_clk_frac_notifier_cb;
@@ -312,6 +304,8 @@ static struct clk *rockchip_clk_register_frac_branch(
/* notifier on the fraction divider to catch rate changes */
if (frac->mux_frac_idx >= 0) {
+ pr_debug("%s: find fractional parent in mux at pos %d\n",
+ __func__, frac->mux_frac_idx);
ret = clk_notifier_register(clk, &frac->clk_nb);
if (ret)
pr_err("%s: failed to register clock notifier for %s\n",
--
1.7.12.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 14/33] clk: use match_string() helper
[not found] <1526903890-35761-1-git-send-email-xieyisheng1@huawei.com>
2018-05-21 11:57 ` [PATCH 12/33] clk: bcm2835: use match_string() helper Yisheng Xie
2018-05-21 11:57 ` [PATCH 13/33] clk: rockchip: " Yisheng Xie
@ 2018-05-21 11:57 ` Yisheng Xie
2018-05-21 21:53 ` Andy Shevchenko
2 siblings, 1 reply; 8+ messages in thread
From: Yisheng Xie @ 2018-05-21 11:57 UTC (permalink / raw)
To: linux-kernel; +Cc: Yisheng Xie, Michael Turquette, Stephen Boyd, linux-clk
match_string() returns the index of an array for a matching string,
which can be used intead of open coded variant.
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: linux-clk@vger.kernel.org
Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
---
drivers/clk/clk.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 7af555f..4469eca 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2171,7 +2171,6 @@ void clk_hw_reparent(struct clk_hw *hw, struct clk_hw *new_parent)
bool clk_has_parent(struct clk *clk, struct clk *parent)
{
struct clk_core *core, *parent_core;
- unsigned int i;
/* NULL clocks should be nops, so return success if either is NULL. */
if (!clk || !parent)
@@ -2184,11 +2183,8 @@ bool clk_has_parent(struct clk *clk, struct clk *parent)
if (core->parent == parent_core)
return true;
- for (i = 0; i < core->num_parents; i++)
- if (strcmp(core->parent_names[i], parent_core->name) == 0)
- return true;
-
- return false;
+ return match_string(core->parent_names,
+ core->num_parents, parent_core->name) >= 0;
}
EXPORT_SYMBOL_GPL(clk_has_parent);
--
1.7.12.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 12/33] clk: bcm2835: use match_string() helper
2018-05-21 11:57 ` [PATCH 12/33] clk: bcm2835: use match_string() helper Yisheng Xie
@ 2018-05-21 17:48 ` Eric Anholt
2018-05-21 21:50 ` Andy Shevchenko
1 sibling, 0 replies; 8+ messages in thread
From: Eric Anholt @ 2018-05-21 17:48 UTC (permalink / raw)
To: Yisheng Xie, linux-kernel
Cc: Yisheng Xie, Michael Turquette, Stephen Boyd, Stefan Wahren,
linux-clk, linux-rpi-kernel, linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 1798 bytes --]
Yisheng Xie <xieyisheng1@huawei.com> writes:
> match_string() returns the index of an array for a matching string,
> which can be used intead of open coded variant.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Stefan Wahren <stefan.wahren@i2se.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-rpi-kernel@lists.infradead.org
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
> ---
> drivers/clk/bcm/clk-bcm2835.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
> index fa0d5c8..a27c0d2 100644
> --- a/drivers/clk/bcm/clk-bcm2835.c
> +++ b/drivers/clk/bcm/clk-bcm2835.c
> @@ -1395,8 +1395,7 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman,
> struct bcm2835_clock *clock;
> struct clk_init_data init;
> const char *parents[1 << CM_SRC_BITS];
> - size_t i, j;
> - int ret;
> + int i, ret;
>
> /*
> * Replace our strings referencing parent clocks with the
> @@ -1405,12 +1404,11 @@ static struct clk_hw *bcm2835_register_clock(struct bcm2835_cprman *cprman,
> for (i = 0; i < data->num_mux_parents; i++) {
> parents[i] = data->parents[i];
>
> - for (j = 0; j < ARRAY_SIZE(cprman_parent_names); j++) {
> - if (strcmp(parents[i], cprman_parent_names[j]) == 0) {
> - parents[i] = cprman->real_parent_names[j];
> - break;
> - }
> - }
> + ret = match_string(cprman_parent_names,
> + ARRAY_SIZE(cprman_parent_names),
> + parents[i]);
> + if (ret >= 0)
> + parents[i] = cprman->real_parent_names[ret];
Reviewed-by: Eric Anholt <eric@anholt.net>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 12/33] clk: bcm2835: use match_string() helper
2018-05-21 11:57 ` [PATCH 12/33] clk: bcm2835: use match_string() helper Yisheng Xie
2018-05-21 17:48 ` Eric Anholt
@ 2018-05-21 21:50 ` Andy Shevchenko
2018-05-22 3:42 ` Yisheng Xie
1 sibling, 1 reply; 8+ messages in thread
From: Andy Shevchenko @ 2018-05-21 21:50 UTC (permalink / raw)
To: Yisheng Xie
Cc: Linux Kernel Mailing List, Michael Turquette, Stephen Boyd,
Eric Anholt, Stefan Wahren, linux-clk, linux-rpi-kernel,
linux-arm Mailing List
On Mon, May 21, 2018 at 2:57 PM, Yisheng Xie <xieyisheng1@huawei.com> wrote:
> match_string() returns the index of an array for a matching string,
> which can be used intead of open coded variant.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: Stefan Wahren <stefan.wahren@i2se.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-rpi-kernel@lists.infradead.org
> Cc: linux-arm-kernel@lists.infradead.org
> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
> - size_t i, j;
> - int ret;
> + int i, ret;
I do not see any need to change type for i.
> + ret = match_string(cprman_parent_names,
> + ARRAY_SIZE(cprman_parent_names),
> + parents[i]);
> + if (ret >= 0)
> + parents[i] = cprman->real_parent_names[ret];
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 14/33] clk: use match_string() helper
2018-05-21 11:57 ` [PATCH 14/33] clk: " Yisheng Xie
@ 2018-05-21 21:53 ` Andy Shevchenko
0 siblings, 0 replies; 8+ messages in thread
From: Andy Shevchenko @ 2018-05-21 21:53 UTC (permalink / raw)
To: Yisheng Xie
Cc: Linux Kernel Mailing List, Michael Turquette, Stephen Boyd,
linux-clk
On Mon, May 21, 2018 at 2:57 PM, Yisheng Xie <xieyisheng1@huawei.com> wrote:
> match_string() returns the index of an array for a matching string,
> which can be used intead of open coded variant.
> + return match_string(core->parent_names,
> + core->num_parents, parent_core->name) >= 0;
More logical split is to leave second parameter on the first line.
P.S. I would rather to put everything to one line even if takes ~83 characters.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 12/33] clk: bcm2835: use match_string() helper
2018-05-21 21:50 ` Andy Shevchenko
@ 2018-05-22 3:42 ` Yisheng Xie
0 siblings, 0 replies; 8+ messages in thread
From: Yisheng Xie @ 2018-05-22 3:42 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Linux Kernel Mailing List, Michael Turquette, Stephen Boyd,
Eric Anholt, Stefan Wahren, linux-clk, linux-rpi-kernel,
linux-arm Mailing List
Hi Andy,
On 2018/5/22 5:50, Andy Shevchenko wrote:
> On Mon, May 21, 2018 at 2:57 PM, Yisheng Xie <xieyisheng1@huawei.com> wrote:
>> match_string() returns the index of an array for a matching string,
>> which can be used intead of open coded variant.
>>
>> Cc: Michael Turquette <mturquette@baylibre.com>
>> Cc: Stephen Boyd <sboyd@kernel.org>
>> Cc: Eric Anholt <eric@anholt.net>
>> Cc: Stefan Wahren <stefan.wahren@i2se.com>
>> Cc: linux-clk@vger.kernel.org
>> Cc: linux-rpi-kernel@lists.infradead.org
>> Cc: linux-arm-kernel@lists.infradead.org
>> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
>
>> - size_t i, j;
>> - int ret;
>> + int i, ret;
>
> I do not see any need to change type for i.
Right, I just want to smaller the line of code, for unsinged int is also OK for i.
Anyway, I can change it as your suggestion in next version.
Thanks
Yisheng
>
>> + ret = match_string(cprman_parent_names,
>> + ARRAY_SIZE(cprman_parent_names),
>> + parents[i]);
>> + if (ret >= 0)
>> + parents[i] = cprman->real_parent_names[ret];
>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 13/33] clk: rockchip: use match_string() helper
2018-05-21 11:57 ` [PATCH 13/33] clk: rockchip: " Yisheng Xie
@ 2018-05-22 13:56 ` Heiko Stuebner
0 siblings, 0 replies; 8+ messages in thread
From: Heiko Stuebner @ 2018-05-22 13:56 UTC (permalink / raw)
To: Yisheng Xie
Cc: linux-kernel, Michael Turquette, Stephen Boyd, linux-clk,
linux-arm-kernel, linux-rockchip
Am Montag, 21. Mai 2018, 13:57:50 CEST schrieb Yisheng Xie:
> match_string() returns the index of an array for a matching string,
> which can be used intead of open coded variant.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Heiko Stuebner <heiko@sntech.de>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-rockchip@lists.infradead.org
> Signed-off-by: Yisheng Xie <xieyisheng1@huawei.com>
> @@ -312,6 +304,8 @@ static struct clk *rockchip_clk_register_frac_branch(
>
> /* notifier on the fraction divider to catch rate changes */
> if (frac->mux_frac_idx >= 0) {
> + pr_debug("%s: find fractional parent in mux at pos %d\n",
> + __func__, frac->mux_frac_idx);
applied to my Rockchip clk branch for 4.18 after changing the "find" above
to "found" again ;-) .
Thanks for the nice cleanup
Heiko
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-05-22 13:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1526903890-35761-1-git-send-email-xieyisheng1@huawei.com>
2018-05-21 11:57 ` [PATCH 12/33] clk: bcm2835: use match_string() helper Yisheng Xie
2018-05-21 17:48 ` Eric Anholt
2018-05-21 21:50 ` Andy Shevchenko
2018-05-22 3:42 ` Yisheng Xie
2018-05-21 11:57 ` [PATCH 13/33] clk: rockchip: " Yisheng Xie
2018-05-22 13:56 ` Heiko Stuebner
2018-05-21 11:57 ` [PATCH 14/33] clk: " Yisheng Xie
2018-05-21 21:53 ` Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox