bcm27xx: update patches from RPi foundation
[openwrt/openwrt.git] / target / linux / bcm27xx / patches-5.4 / 950-0623-vc4_hdmi_phy-Fix-offset-calculation.patch
1 From 9da2d153eb010d3e92083c322e87de9ae066d93e Mon Sep 17 00:00:00 2001
2 From: popcornmix <popcornmix@gmail.com>
3 Date: Thu, 2 Apr 2020 16:46:31 +0100
4 Subject: [PATCH] vc4_hdmi_phy: Fix offset calculation
5
6 The original firmware code worked with float and did
7 offset = ((vco_freq / fref * 2) * (1 << 22));
8 offset >>= 2;
9
10 In this code it's all integer so doing the integer divide before the shift loses lots of precision
11
12 This fixes the issue of 1080p59.94 mode having 59.64 fps
13
14 Signed-off-by: popcornmix <popcornmix@gmail.com>
15 ---
16 drivers/gpu/drm/vc4/vc4_hdmi_phy.c | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-)
18
19 --- a/drivers/gpu/drm/vc4/vc4_hdmi_phy.c
20 +++ b/drivers/gpu/drm/vc4/vc4_hdmi_phy.c
21 @@ -192,8 +192,8 @@ static u32 phy_get_rm_offset(unsigned lo
22
23 /* RM offset is stored as 9.22 format */
24 offset = vco_freq * 2;
25 - do_div(offset, fref);
26 offset = offset << 22;
27 + do_div(offset, fref);
28 offset >>= 2;
29
30 return offset;