Re: [PATCH v2] clk: qcom: common: use parent_hws in _qcom_cc_register_board_clk()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 28, 2022 at 10:35:55PM +0200, Dmitry Baryshkov wrote:
> Switch _qcom_cc_register_board_clk() to use parent_hws.
> 

There's more to this patch then this short sentence, please describe it
further.

And given Dan's reported-by, I must assume that there's an issue with
the current code. Is there a Fixes?

Regards,
Bjorn

> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> ---
> 
> Changes since v1:
> - Properly fix the clock's parent data in case parent clock is present
>   in the dtsi.
> 
> ---
>  drivers/clk/qcom/common.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c
> index 75f09e6e057e..9f2bd37c9540 100644
> --- a/drivers/clk/qcom/common.c
> +++ b/drivers/clk/qcom/common.c
> @@ -133,7 +133,7 @@ static int _qcom_cc_register_board_clk(struct device *dev, const char *path,
>  	struct device_node *node = NULL;
>  	struct device_node *clocks_node;
>  	struct clk_fixed_factor *factor;
> -	struct clk_fixed_rate *fixed;
> +	struct clk_fixed_rate *fixed = NULL;
>  	struct clk_init_data init_data = { };
>  	int ret;
>  
> @@ -161,6 +161,8 @@ static int _qcom_cc_register_board_clk(struct device *dev, const char *path,
>  	of_node_put(node);
>  
>  	if (add_factor) {
> +		struct clk_parent_data parent_data;
> +
>  		factor = devm_kzalloc(dev, sizeof(*factor), GFP_KERNEL);
>  		if (!factor)
>  			return -EINVAL;
> @@ -168,8 +170,13 @@ static int _qcom_cc_register_board_clk(struct device *dev, const char *path,
>  		factor->mult = factor->div = 1;
>  		factor->hw.init = &init_data;
>  
> +		if (fixed)
> +			parent_data.hw = &fixed->hw;
> +		else
> +			parent_data.name = path;
> +
>  		init_data.name = name;
> -		init_data.parent_names = &path;
> +		init_data.parent_data = &parent_data;
>  		init_data.num_parents = 1;
>  		init_data.flags = 0;
>  		init_data.ops = &clk_fixed_factor_ops;
> -- 
> 2.39.0
> 



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux