Re: [PATCH 6/9] drm/msm/dsi_phy_28nm_8960: Use stack memory for temporary clock names

From: Dmitry Baryshkov
Date: Mon May 23 2022 - 18:45:45 EST


On Tue, 24 May 2022 at 00:38, Marijn Suijten
<marijn.suijten@xxxxxxxxxxxxxx> wrote:
>
> The clock names formatted into the hw_clk's init structure are only used
> for the duration of the registration function where they are kstrdup'ed,
> making it unnecessary to keep the allocations alive for the duration of
> the device (through devm).
>
> Just like the other DSI PHY PLL clock trees, use a stack-local char
> array and save on memory outside of the pll_28nm_register function.
>
> Signed-off-by: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx>

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>

Nit: we can use clk_name instead of vco_name too.

> ---
> drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c | 10 +---------
> 1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c
> index 943a7e847c90..554978fc434d 100644
> --- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c
> +++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c
> @@ -383,7 +383,7 @@ static int dsi_28nm_pll_restore_state(struct msm_dsi_phy *phy)
>
> static int pll_28nm_register(struct dsi_pll_28nm *pll_28nm, struct clk_hw **provided_clocks)
> {
> - char *clk_name, *vco_name;
> + char clk_name[32], vco_name[32];
> struct clk_init_data vco_init = {
> .parent_data = &(const struct clk_parent_data) {
> .fw_name = "ref",
> @@ -404,14 +404,6 @@ static int pll_28nm_register(struct dsi_pll_28nm *pll_28nm, struct clk_hw **prov
> if (!bytediv)
> return -ENOMEM;
>
> - vco_name = devm_kzalloc(dev, 32, GFP_KERNEL);
> - if (!vco_name)
> - return -ENOMEM;
> -
> - clk_name = devm_kzalloc(dev, 32, GFP_KERNEL);
> - if (!clk_name)
> - return -ENOMEM;
> -
> snprintf(vco_name, 32, "dsi%dvco_clk", pll_28nm->phy->id);
> vco_init.name = vco_name;
>
> --
> 2.36.1
>


--
With best wishes
Dmitry