* [PATCH v2 0/2] Fix mtk-hdmi-mt8195 unitialized variable usage and clock rate calculation
@ 2023-04-14 16:07 Guillaume Ranquet
2023-04-14 16:07 ` [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc Guillaume Ranquet
2023-04-14 16:07 ` [PATCH v2 2/2] phy: mediatek: hdmi: mt8195: fix wrong pll calculus Guillaume Ranquet
0 siblings, 2 replies; 7+ messages in thread
From: Guillaume Ranquet @ 2023-04-14 16:07 UTC (permalink / raw)
To: Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun, Vinod Koul,
Kishon Vijay Abraham I, Matthias Brugger,
AngeloGioacchino Del Regno
Cc: dri-devel, linux-mediatek, linux-arm-kernel, linux-phy,
linux-kernel, Guillaume Ranquet, kernel test robot
I've received a report from kernel test report [1] that a variable was used
unitialized in the mtk8195 hdmi phy code.
I've upon fixing that issue found out that the clock rate calculation
was erroneous since the calculus was moved to div_u64.
I'm providing those two fixes on top of 45810d486bb44 from the linux-phy
repository [2].
[1] https://lore.kernel.org/oe-kbuild-all/202304130304.gMtrUdbd-lkp@intel.com/
[2] https://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git
Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
---
Changes in v2:
- Propagate return value of mtk_hdmi_pll_set_hw() as suggested by Angelo
---
Guillaume Ranquet (2):
phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc
phy: mediatek: hdmi: mt8195: fix wrong pll calculus
drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
---
base-commit: 45810d486bb44bd60213d5f09a713df81b987972
change-id: 20230413-fixes-for-mt8195-hdmi-phy-9e1513b5baad
Best regards,
--
Guillaume Ranquet <granquet@baylibre.com>
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc 2023-04-14 16:07 [PATCH v2 0/2] Fix mtk-hdmi-mt8195 unitialized variable usage and clock rate calculation Guillaume Ranquet @ 2023-04-14 16:07 ` Guillaume Ranquet 2023-04-14 16:44 ` Matthias Brugger ` (2 more replies) 2023-04-14 16:07 ` [PATCH v2 2/2] phy: mediatek: hdmi: mt8195: fix wrong pll calculus Guillaume Ranquet 1 sibling, 3 replies; 7+ messages in thread From: Guillaume Ranquet @ 2023-04-14 16:07 UTC (permalink / raw) To: Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun, Vinod Koul, Kishon Vijay Abraham I, Matthias Brugger, AngeloGioacchino Del Regno Cc: dri-devel, linux-mediatek, linux-arm-kernel, linux-phy, linux-kernel, Guillaume Ranquet, kernel test robot The ret variable in mtk_hdmi_pll_calc() was used unitialized as reported by the kernel test robot. Fix the issue by removing the variable altogether and testing out the return value of mtk_hdmi_pll_set_hw() Fixes: 45810d486bb44 ("phy: mediatek: add support for phy-mtk-hdmi-mt8195") Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> --- drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c index abfc077fb0a8..054b73cb31ee 100644 --- a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c +++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c @@ -213,7 +213,7 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, u64 tmds_clk, pixel_clk, da_hdmitx21_ref_ck, ns_hdmipll_ck, pcw; u8 txpredivs[4] = { 2, 4, 6, 12 }; u32 fbkdiv_low; - int i, ret; + int i; pixel_clk = rate; tmds_clk = pixel_clk; @@ -292,13 +292,9 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, if (!(digital_div <= 32 && digital_div >= 1)) return -EINVAL; - mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, + return mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, PLL_FBKDIV_HS3, posdiv1, posdiv2, txprediv, txposdiv, digital_div); - if (ret) - return -EINVAL; - - return 0; } static int mtk_hdmi_pll_drv_setting(struct clk_hw *hw) -- 2.40.0 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc 2023-04-14 16:07 ` [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc Guillaume Ranquet @ 2023-04-14 16:44 ` Matthias Brugger 2023-04-17 7:39 ` AngeloGioacchino Del Regno 2023-04-21 22:13 ` Nathan Chancellor 2 siblings, 0 replies; 7+ messages in thread From: Matthias Brugger @ 2023-04-14 16:44 UTC (permalink / raw) To: Guillaume Ranquet, Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun, Vinod Koul, Kishon Vijay Abraham I, AngeloGioacchino Del Regno Cc: dri-devel, linux-mediatek, linux-arm-kernel, linux-phy, linux-kernel, kernel test robot On 14/04/2023 18:07, Guillaume Ranquet wrote: > The ret variable in mtk_hdmi_pll_calc() was used unitialized as reported > by the kernel test robot. > > Fix the issue by removing the variable altogether and testing out the > return value of mtk_hdmi_pll_set_hw() > > Fixes: 45810d486bb44 ("phy: mediatek: add support for phy-mtk-hdmi-mt8195") > Reported-by: kernel test robot <lkp@intel.com> > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> Looks good, but got unfortunately already fixed 4 hours ago with 20230414122253.3171524-1-trix@redhat.com :) Regards, Matthias > --- > drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > index abfc077fb0a8..054b73cb31ee 100644 > --- a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > +++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > @@ -213,7 +213,7 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, > u64 tmds_clk, pixel_clk, da_hdmitx21_ref_ck, ns_hdmipll_ck, pcw; > u8 txpredivs[4] = { 2, 4, 6, 12 }; > u32 fbkdiv_low; > - int i, ret; > + int i; > > pixel_clk = rate; > tmds_clk = pixel_clk; > @@ -292,13 +292,9 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, > if (!(digital_div <= 32 && digital_div >= 1)) > return -EINVAL; > > - mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, > + return mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, > PLL_FBKDIV_HS3, posdiv1, posdiv2, txprediv, > txposdiv, digital_div); > - if (ret) > - return -EINVAL; > - > - return 0; > } > > static int mtk_hdmi_pll_drv_setting(struct clk_hw *hw) > -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc 2023-04-14 16:07 ` [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc Guillaume Ranquet 2023-04-14 16:44 ` Matthias Brugger @ 2023-04-17 7:39 ` AngeloGioacchino Del Regno 2023-04-21 22:13 ` Nathan Chancellor 2 siblings, 0 replies; 7+ messages in thread From: AngeloGioacchino Del Regno @ 2023-04-17 7:39 UTC (permalink / raw) To: Guillaume Ranquet, Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun, Vinod Koul, Kishon Vijay Abraham I, Matthias Brugger Cc: dri-devel, linux-mediatek, linux-arm-kernel, linux-phy, linux-kernel, kernel test robot Il 14/04/23 18:07, Guillaume Ranquet ha scritto: > The ret variable in mtk_hdmi_pll_calc() was used unitialized as reported > by the kernel test robot. > > Fix the issue by removing the variable altogether and testing out the > return value of mtk_hdmi_pll_set_hw() > > Fixes: 45810d486bb44 ("phy: mediatek: add support for phy-mtk-hdmi-mt8195") > Reported-by: kernel test robot <lkp@intel.com> > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc 2023-04-14 16:07 ` [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc Guillaume Ranquet 2023-04-14 16:44 ` Matthias Brugger 2023-04-17 7:39 ` AngeloGioacchino Del Regno @ 2023-04-21 22:13 ` Nathan Chancellor 2023-04-24 20:42 ` Nick Desaulniers 2 siblings, 1 reply; 7+ messages in thread From: Nathan Chancellor @ 2023-04-21 22:13 UTC (permalink / raw) To: Guillaume Ranquet Cc: Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun, Vinod Koul, Kishon Vijay Abraham I, Matthias Brugger, AngeloGioacchino Del Regno, dri-devel, linux-mediatek, linux-arm-kernel, linux-phy, linux-kernel, kernel test robot, llvm On Fri, Apr 14, 2023 at 06:07:46PM +0200, Guillaume Ranquet wrote: > The ret variable in mtk_hdmi_pll_calc() was used unitialized as reported > by the kernel test robot. > > Fix the issue by removing the variable altogether and testing out the > return value of mtk_hdmi_pll_set_hw() > > Fixes: 45810d486bb44 ("phy: mediatek: add support for phy-mtk-hdmi-mt8195") > Reported-by: kernel test robot <lkp@intel.com> > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Can somebody pick this up? It fixes a rather obvious warning, which is breaking clang builds (as evidenced by three versions of the same fix). > --- > drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > index abfc077fb0a8..054b73cb31ee 100644 > --- a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > +++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > @@ -213,7 +213,7 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, > u64 tmds_clk, pixel_clk, da_hdmitx21_ref_ck, ns_hdmipll_ck, pcw; > u8 txpredivs[4] = { 2, 4, 6, 12 }; > u32 fbkdiv_low; > - int i, ret; > + int i; > > pixel_clk = rate; > tmds_clk = pixel_clk; > @@ -292,13 +292,9 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, > if (!(digital_div <= 32 && digital_div >= 1)) > return -EINVAL; > > - mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, > + return mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, > PLL_FBKDIV_HS3, posdiv1, posdiv2, txprediv, > txposdiv, digital_div); > - if (ret) > - return -EINVAL; > - > - return 0; > } > > static int mtk_hdmi_pll_drv_setting(struct clk_hw *hw) > > -- > 2.40.0 > -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc 2023-04-21 22:13 ` Nathan Chancellor @ 2023-04-24 20:42 ` Nick Desaulniers 0 siblings, 0 replies; 7+ messages in thread From: Nick Desaulniers @ 2023-04-24 20:42 UTC (permalink / raw) To: Matthias Brugger, Chunfeng Yun, Vinod Koul Cc: Guillaume Ranquet, Chun-Kuang Hu, Philipp Zabel, Kishon Vijay Abraham I, AngeloGioacchino Del Regno, dri-devel, linux-mediatek, linux-arm-kernel, linux-phy, linux-kernel, kernel test robot, llvm, Nathan Chancellor On Fri, Apr 21, 2023 at 3:13 PM Nathan Chancellor <nathan@kernel.org> wrote: > > On Fri, Apr 14, 2023 at 06:07:46PM +0200, Guillaume Ranquet wrote: > > The ret variable in mtk_hdmi_pll_calc() was used unitialized as reported > > by the kernel test robot. > > > > Fix the issue by removing the variable altogether and testing out the > > return value of mtk_hdmi_pll_set_hw() > > > > Fixes: 45810d486bb44 ("phy: mediatek: add support for phy-mtk-hdmi-mt8195") > > Reported-by: kernel test robot <lkp@intel.com> > > Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> > > Reviewed-by: Nathan Chancellor <nathan@kernel.org> > > Can somebody pick this up? It fixes a rather obvious warning, which is > breaking clang builds (as evidenced by three versions of the same fix). $ ./scripts/get_maintainer.pl -f drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | grep maintainer Chunfeng Yun <chunfeng.yun@mediatek.com> (maintainer:ARM/Mediatek USB3 PHY DRIVER) Matthias Brugger <matthias.bgg@gmail.com> (maintainer:ARM/Mediatek SoC support) Chunfeng, Matthias, can one of you pick this up, please? Or Vinod who merged 45810d486bb44 FWICT? > > > --- > > drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | 8 ++------ > > 1 file changed, 2 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > > index abfc077fb0a8..054b73cb31ee 100644 > > --- a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > > +++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c > > @@ -213,7 +213,7 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, > > u64 tmds_clk, pixel_clk, da_hdmitx21_ref_ck, ns_hdmipll_ck, pcw; > > u8 txpredivs[4] = { 2, 4, 6, 12 }; > > u32 fbkdiv_low; > > - int i, ret; > > + int i; > > > > pixel_clk = rate; > > tmds_clk = pixel_clk; > > @@ -292,13 +292,9 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, > > if (!(digital_div <= 32 && digital_div >= 1)) > > return -EINVAL; > > > > - mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, > > + return mtk_hdmi_pll_set_hw(hw, PLL_PREDIV, fbkdiv_high, fbkdiv_low, > > PLL_FBKDIV_HS3, posdiv1, posdiv2, txprediv, > > txposdiv, digital_div); > > - if (ret) > > - return -EINVAL; > > - > > - return 0; > > } > > > > static int mtk_hdmi_pll_drv_setting(struct clk_hw *hw) > > > > -- > > 2.40.0 > > > -- Thanks, ~Nick Desaulniers -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] phy: mediatek: hdmi: mt8195: fix wrong pll calculus 2023-04-14 16:07 [PATCH v2 0/2] Fix mtk-hdmi-mt8195 unitialized variable usage and clock rate calculation Guillaume Ranquet 2023-04-14 16:07 ` [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc Guillaume Ranquet @ 2023-04-14 16:07 ` Guillaume Ranquet 1 sibling, 0 replies; 7+ messages in thread From: Guillaume Ranquet @ 2023-04-14 16:07 UTC (permalink / raw) To: Chun-Kuang Hu, Philipp Zabel, Chunfeng Yun, Vinod Koul, Kishon Vijay Abraham I, Matthias Brugger, AngeloGioacchino Del Regno Cc: dri-devel, linux-mediatek, linux-arm-kernel, linux-phy, linux-kernel, Guillaume Ranquet The clock rate calculus in mtk_hdmi_pll_calc() was wrong when it has been replaced by 'div_u64'. Fix the issue by multiplying the values in the denominator instead of dividing them. Fixes: 45810d486bb44 ("phy: mediatek: add support for phy-mtk-hdmi-mt8195") Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com> --- drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c index 054b73cb31ee..caa953780bee 100644 --- a/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c +++ b/drivers/phy/mediatek/phy-mtk-hdmi-mt8195.c @@ -271,7 +271,7 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, * [32,24] 9bit integer, [23,0]:24bit fraction */ pcw = div_u64(((u64)ns_hdmipll_ck) << PCW_DECIMAL_WIDTH, - da_hdmitx21_ref_ck / PLL_FBKDIV_HS3); + da_hdmitx21_ref_ck * PLL_FBKDIV_HS3); if (pcw > GENMASK_ULL(32, 0)) return -EINVAL; @@ -288,7 +288,7 @@ static int mtk_hdmi_pll_calc(struct mtk_hdmi_phy *hdmi_phy, struct clk_hw *hw, posdiv2 = 1; /* Digital clk divider, max /32 */ - digital_div = div_u64((u64)ns_hdmipll_ck, posdiv1 / posdiv2 / pixel_clk); + digital_div = div_u64(ns_hdmipll_ck, posdiv1 * posdiv2 * pixel_clk); if (!(digital_div <= 32 && digital_div >= 1)) return -EINVAL; -- 2.40.0 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-04-24 20:42 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-14 16:07 [PATCH v2 0/2] Fix mtk-hdmi-mt8195 unitialized variable usage and clock rate calculation Guillaume Ranquet 2023-04-14 16:07 ` [PATCH v2 1/2] phy: mediatek: hdmi: mt8195: fix uninitialized variable usage in pll_calc Guillaume Ranquet 2023-04-14 16:44 ` Matthias Brugger 2023-04-17 7:39 ` AngeloGioacchino Del Regno 2023-04-21 22:13 ` Nathan Chancellor 2023-04-24 20:42 ` Nick Desaulniers 2023-04-14 16:07 ` [PATCH v2 2/2] phy: mediatek: hdmi: mt8195: fix wrong pll calculus Guillaume Ranquet
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox