phy/rockchip: inno-hdmi: round clock rate down to closest 1000 Hz
authorJonas Karlman <jonas@kwiboo.se>
Mon, 23 Dec 2019 08:49:19 +0000 (08:49 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 Jan 2020 09:01:09 +0000 (10:01 +0100)
commit88532d1e64e1a303b23ea13355c990f10a6b4b93
tree545702da6d9c7a2bf294e4ed1d72d565b9704242
parentce28f9842d0e1d36a3c8891c4d46cc4c1d56940f
phy/rockchip: inno-hdmi: round clock rate down to closest 1000 Hz

[ Upstream commit 4f510aa10468954b1da4e94689c38ac6ea8d3627 ]

Commit 287422a95fe2 ("drm/rockchip: Round up _before_ giving to the clock framework")
changed what rate clk_round_rate() is called with, an additional 999 Hz
added to the requsted mode clock. This has caused a regression on RK3328
and presumably also on RK3228 because the inno-hdmi-phy clock requires an
exact match of the requested rate in the pre pll config table.

When an exact match is not found the parent clock rate (24MHz) is returned
to the clk_round_rate() caller. This cause wrong pixel clock to be used and
result in no-signal when configuring a mode on RK3328.

Fix this by rounding the rate down to closest 1000 Hz in round_rate func,
this allows an exact match to be found in pre pll config table.

Fixes: 287422a95fe2 ("drm/rockchip: Round up _before_ giving to the clock framework")
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/phy/rockchip/phy-rockchip-inno-hdmi.c