Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp1636032ybk; Thu, 14 May 2020 14:04:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxh8srZ+Wpa1pb1KiGFllP/rrkF9F/d2H5ybT7Adomid+DjDS6xR1GLSmRTD3wdFQQyWzhy X-Received: by 2002:a05:6402:cb1:: with SMTP id cn17mr13738edb.382.1589490291596; Thu, 14 May 2020 14:04:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589490291; cv=none; d=google.com; s=arc-20160816; b=ntYEcZ3LJqE4LnQPy4l4O6Ms1DMGK+yvoehfDAB+u0fTWVCErVZoM3NMG7HVHgtiEV WUaGm+S2B6x9Luqis+VX29cKhA8EPp5FDPQ0H7L/kqSVDtnotXGpeOUuU9ISbD/q7Uz+ 3aiWafj9zHrQhL7JVKglQqC7HdyKdIze+q4a1Fess3n2c9P5DabQsrwG6Rl3ZkLxBi+r 2m45EAeJd5q9t+IMUv2NCnx5ED7fm7GdwkcO6GWaOQXIAI0NlKdgwUZv+l7GrepaG91b zzLHGA/VJ/0IVe7UjR4kXYVivaETIECQLar2N4qAeqgbjrZAwAl0vyfl3Yonh78yztq9 rh6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:date:to:cc:from :subject:references:in-reply-to:content-transfer-encoding :mime-version:dkim-signature; bh=ZSiAL2PwTrfssNCL52el72+M8BEJeO7I0ZMZG9zpr4A=; b=cfabGIZphPHAezOfoM6p4HhODp7hmP8JnofEnBivupIkzXbV96OVfsWAhZ037JHxuv qJHOp26/TbLSq5iQ3GMx4L53qV7EOHW2+NQWSpqa59zbvBCE167xEyN+7Fh/UzOJh7Sb yByRboEk4IPAZhy3dJI31WiRPbqVWAfKVGj9WWa7Llvwl/Ndhj51SBr18tE9rWiLz5ur HGOicJro6nBDzYvHrJdYVRmOgDxfdnwTaeWhQAP/rxgpshae5rf6KphZSU5MQ13xOwN2 C+mBjdqibd6/9WRSprLTJP0AkxQZ8FuZ9U35xac6hq5gAhxwQi6FeIluFKPuHXZeP4r1 HFkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hyfFgR+G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z6si32876ejb.147.2020.05.14.14.04.27; Thu, 14 May 2020 14:04:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=hyfFgR+G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727832AbgENVC3 (ORCPT + 99 others); Thu, 14 May 2020 17:02:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:41318 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726201AbgENVC2 (ORCPT ); Thu, 14 May 2020 17:02:28 -0400 Received: from kernel.org (unknown [104.132.0.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E4298206F1; Thu, 14 May 2020 21:02:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589490148; bh=BpiNhcYdcKddO8cs3Vt8IZUscWTK1/Is8oqrDfZkC6w=; h=In-Reply-To:References:Subject:From:Cc:To:Date:From; b=hyfFgR+GL76NQf566ZtlB+WOryIov5DSxhUL5b5JUGfd+iX0ldBn3aeIuHEmGYr5F EJi9Wz7J28FNtt08VJYBztNyXwTQJ6uHS1pGhU4g7jeCKpOQ1WCr4QwXnoluVb/vcF CFUnP5fIMuLO3vUY90BKaBpUzqs5HHWHXbnfeD0k= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In-Reply-To: <1589267017-17294-5-git-send-email-dillon.minfei@gmail.com> References: <1589267017-17294-1-git-send-email-dillon.minfei@gmail.com> <1589267017-17294-5-git-send-email-dillon.minfei@gmail.com> Subject: Re: [PATCH v3 4/5] clk: stm32: Fix stm32f429 ltdc driver loading hang in clk set rate. keep ltdc clk running after kernel startup From: Stephen Boyd Cc: devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-clk@vger.kernel.org, dillon.minfei@gmail.com To: airlied@linux.ie, alexandre.torgue@st.com, daniel@ffwll.ch, dillon.minfei@gmail.com, mcoquelin.stm32@gmail.com, mturquette@baylibre.com, robh+dt@kernel.org, sam@ravnborg.org, thierry.reding@gmail.com Date: Thu, 14 May 2020 14:02:27 -0700 Message-ID: <158949014721.215346.12197373767247910756@swboyd.mtv.corp.google.com> User-Agent: alot/0.9 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting dillon.minfei@gmail.com (2020-05-12 00:03:36) > From: dillon min >=20 > as store stm32f4_rcc_register_pll return to the wrong offset of clks, Use () on functions, i.e. stm32f4_rcc_register_pll(). > so ltdc gate clk is null. need change clks[PLL_VCO_SAI] to clks[PLL_SAI] And quote variables like 'clks[PLL_VCO_SAI]' >=20 > add CLK_IGNORE_UNUSED for ltdc to make sure clk not be freed by > clk_disable_unused clk_disable_unused() doesn't free anything. Why does ltdc not need to be turned off if it isn't used? Is it critical to system operation? Should it be marked with the critical clk flag then? The CLK_IGNORE_UNUSED flag is almost always wrong to use. >=20 > Signed-off-by: dillon min > --- > drivers/clk/clk-stm32f4.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/clk/clk-stm32f4.c b/drivers/clk/clk-stm32f4.c > index 18117ce..0ba73de 100644 > --- a/drivers/clk/clk-stm32f4.c > +++ b/drivers/clk/clk-stm32f4.c > @@ -129,7 +129,8 @@ static const struct stm32f4_gate_data stm32f429_gates= [] __initconst =3D { > { STM32F4_RCC_APB2ENR, 20, "spi5", "apb2_div" }, > { STM32F4_RCC_APB2ENR, 21, "spi6", "apb2_div" }, > { STM32F4_RCC_APB2ENR, 22, "sai1", "apb2_div" }, > - { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div" }, > + { STM32F4_RCC_APB2ENR, 26, "ltdc", "apb2_div", > + CLK_IGNORE_UNUSED }, > }; > =20 > static const struct stm32f4_gate_data stm32f469_gates[] __initconst =3D { > @@ -1757,7 +1758,7 @@ static void __init stm32f4_rcc_init(struct device_n= ode *np) > clks[PLL_VCO_I2S] =3D stm32f4_rcc_register_pll("vco_in", > &data->pll_data[1], &stm32f4_clk_lock); > =20 > - clks[PLL_VCO_SAI] =3D stm32f4_rcc_register_pll("vco_in", > + clks[PLL_SAI] =3D stm32f4_rcc_register_pll("vco_in", > &data->pll_data[2], &stm32f4_clk_lock); > =20 > for (n =3D 0; n < MAX_POST_DIV; n++) {