mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
phy: mediatek: phy-mtk-hdmi-mt8195: Fix TMDS clk bit ratio setting
The comment in the mtk_phy_tmds_clk_ratio() function clearly and
correctly explains that the TMDS ratio has to be 1/10 for data
rates under 3.4Gbps, and 1/40 over that.
Unfortunately though, the TXC_DIV register setting was wrong, as
in value 3 means to divide by 8 and, in order to achieve the in
spec 1/40 (tmds) data rate, this has to divide by 4 instead!
Add definitions for the TXC_DIV register values clearly explaining
the meanings (DIV2, DIV4, DIV8), and program the correct, DIV 4,
value to the register in mtk_phy_tmds_clk_ratio().
This fixes out of spec clocking and, with this change, SoCs using
the MT8195 class HDMI PHYs can now successfully be configured to
output 3840x2160@60Hz over HDMI.
Fixes: 45810d486b ("phy: mediatek: add support for phy-mtk-hdmi-mt8195")
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patch.msgid.link/20260911074015.9994-3-angelogioacchino.delregno@collabora.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
de7f29a1fe
commit
486a70ef84
|
|
@ -36,7 +36,7 @@ mtk_phy_tmds_clk_ratio(struct mtk_hdmi_phy *hdmi_phy, bool enable)
|
|||
* clock bit ratio 1:40, under 3.4Gbps, clock bit ratio 1:10
|
||||
*/
|
||||
if (enable)
|
||||
mtk_phy_update_field(regs + HDMI20_CLK_CFG, REG_TXC_DIV, 3);
|
||||
mtk_phy_update_field(regs + HDMI20_CLK_CFG, REG_TXC_DIV, VAL_TXC_DIV4);
|
||||
else
|
||||
mtk_phy_clear_bits(regs + HDMI20_CLK_CFG, REG_TXC_DIV);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@
|
|||
|
||||
#define HDMI20_CLK_CFG 0x70
|
||||
#define REG_TXC_DIV GENMASK(31, 30)
|
||||
#define VAL_TXC_DIV2 1
|
||||
#define VAL_TXC_DIV4 2
|
||||
#define VAL_TXC_DIV8 3
|
||||
|
||||
#define HDMI_1_CFG_0 0x00
|
||||
#define RG_HDMITX21_DRV_IBIAS_CLK GENMASK(10, 5)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user