Skip to content

Commit d085557

Browse files
author
Chun-Kuang Hu
committed
Revert "drm/mediatek: dsi: Correct calculation formula of PHY Timing"
This reverts commit 417d8c4. With that patch the panel in the Tentacruel ASUS Chromebook CM14 (CM1402F) flickers. There are 1 or 2 times per second a black panel. Stable Kernel 6.11.5 and mainline 6.12-rc4 works only when reverse that patch. Fixes: 417d8c4 ("drm/mediatek: dsi: Correct calculation formula of PHY Timing") Cc: [email protected] Cc: Shuijing Li <[email protected]> Reported-by: Jens Ziller <[email protected]> Closes: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ Link: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ Signed-off-by: Chun-Kuang Hu <[email protected]>
1 parent 40384c8 commit d085557

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

drivers/gpu/drm/mediatek/mtk_dsi.c

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -246,23 +246,22 @@ static void mtk_dsi_phy_timconfig(struct mtk_dsi *dsi)
246246
u32 data_rate_mhz = DIV_ROUND_UP(dsi->data_rate, HZ_PER_MHZ);
247247
struct mtk_phy_timing *timing = &dsi->phy_timing;
248248

249-
timing->lpx = (80 * data_rate_mhz / (8 * 1000)) + 1;
250-
timing->da_hs_prepare = (59 * data_rate_mhz + 4 * 1000) / 8000 + 1;
251-
timing->da_hs_zero = (163 * data_rate_mhz + 11 * 1000) / 8000 + 1 -
249+
timing->lpx = (60 * data_rate_mhz / (8 * 1000)) + 1;
250+
timing->da_hs_prepare = (80 * data_rate_mhz + 4 * 1000) / 8000;
251+
timing->da_hs_zero = (170 * data_rate_mhz + 10 * 1000) / 8000 + 1 -
252252
timing->da_hs_prepare;
253-
timing->da_hs_trail = (78 * data_rate_mhz + 7 * 1000) / 8000 + 1;
254-
255-
timing->ta_go = 4 * timing->lpx;
256-
timing->ta_sure = 3 * timing->lpx / 2;
257-
timing->ta_get = 5 * timing->lpx;
258-
timing->da_hs_exit = (118 * data_rate_mhz / (8 * 1000)) + 1;
259-
260-
timing->clk_hs_prepare = (57 * data_rate_mhz / (8 * 1000)) + 1;
261-
timing->clk_hs_post = (65 * data_rate_mhz + 53 * 1000) / 8000 + 1;
262-
timing->clk_hs_trail = (78 * data_rate_mhz + 7 * 1000) / 8000 + 1;
263-
timing->clk_hs_zero = (330 * data_rate_mhz / (8 * 1000)) + 1 -
264-
timing->clk_hs_prepare;
265-
timing->clk_hs_exit = (118 * data_rate_mhz / (8 * 1000)) + 1;
253+
timing->da_hs_trail = timing->da_hs_prepare + 1;
254+
255+
timing->ta_go = 4 * timing->lpx - 2;
256+
timing->ta_sure = timing->lpx + 2;
257+
timing->ta_get = 4 * timing->lpx;
258+
timing->da_hs_exit = 2 * timing->lpx + 1;
259+
260+
timing->clk_hs_prepare = 70 * data_rate_mhz / (8 * 1000);
261+
timing->clk_hs_post = timing->clk_hs_prepare + 8;
262+
timing->clk_hs_trail = timing->clk_hs_prepare;
263+
timing->clk_hs_zero = timing->clk_hs_trail * 4;
264+
timing->clk_hs_exit = 2 * timing->clk_hs_trail;
266265

267266
timcon0 = FIELD_PREP(LPX, timing->lpx) |
268267
FIELD_PREP(HS_PREP, timing->da_hs_prepare) |

0 commit comments

Comments
 (0)