In MTK chips, if the DRM runtime resume has not yet completed and the
system enters sleep mode at the same time, there is a possibility of
a black screen after waking the machine. Reduce the disable delay
resolves this issue,
The "backlight_off_to_display_off_delay_ms" was added between
"backlight off" and "display off" to prevent "display off" from being
executed when the backlight is not fully powered off, which may cause
a white screen. However, we removed this
"backlight_off_to_display_off_delay_ms" and found that this situation
did not occur. Therefore, in order to solve the problem mentioned
above, we reduced it from 100ms to 3ms (tCMD_OFF >= 1ms).
This is the timing specification for the two panels:
1. Kingdisplay panel timing spec:
https://github.com/KD54183/-JD9365DA_Power-On-Off-Sequence_V0120240923
2. LMFBX101117480 timing spec: https://github.com/chiohsin-lo/TDY-JD_LIB
Fixes: 2b976ad760dc ("drm/panel: jd9365da: Support for kd101ne3-40ti MIPI-DSI panel")
Fixes: c4ce398cf18a ("drm/panel: jd9365da: Support for Melfas lmfbx101117480 MIPI-DSI panel")
Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com>
---
Changes between V3 and V2:
- 1. Modify the commit message
v2: https://lore.kernel.org/all/20240923134227.11383-2-lvzhaoxiong@huaqin.corp-partner.google.com/
Changes between V2 and V1:
- 1. Modify the commit message
- 2. Modify the value of backlight_off_to_display_off_delay_ms.
v1: https://lore.kernel.org/all/20240915080830.11318-2-lvzhaoxiong@huaqin.corp-partner.google.com/
---
drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
index 44897e5218a6..486aa20e5518 100644
--- a/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
+++ b/drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
@@ -858,7 +858,7 @@ static const struct jadard_panel_desc kingdisplay_kd101ne3_40ti_desc = {
.reset_before_power_off_vcioo = true,
.vcioo_to_lp11_delay_ms = 5,
.lp11_to_reset_delay_ms = 10,
- .backlight_off_to_display_off_delay_ms = 100,
+ .backlight_off_to_display_off_delay_ms = 3,
.display_off_to_enter_sleep_delay_ms = 50,
.enter_sleep_to_reset_down_delay_ms = 100,
};
@@ -1109,7 +1109,7 @@ static const struct jadard_panel_desc melfas_lmfbx101117480_desc = {
.reset_before_power_off_vcioo = true,
.vcioo_to_lp11_delay_ms = 5,
.lp11_to_reset_delay_ms = 10,
- .backlight_off_to_display_off_delay_ms = 100,
+ .backlight_off_to_display_off_delay_ms = 3,
.display_off_to_enter_sleep_delay_ms = 50,
.enter_sleep_to_reset_down_delay_ms = 100,
};
--
2.17.1
Hi, On Fri, Sep 27, 2024 at 2:44 AM Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com> wrote: > > In MTK chips, if the DRM runtime resume has not yet completed and the > system enters sleep mode at the same time, there is a possibility of > a black screen after waking the machine. Reduce the disable delay > resolves this issue, This sounds _really_ suspicious to me and it feels like you're just pushing around timing to get lucky and avoid the problem. Generally if decreasing delays like this fixes a functional problem then the problem is still there (just hidden) and has the potential to come back if a little extra delay shows up. I don't understand _why_ it's important for DRM runtime resume to complete before the system enters sleep. Is this causing the Mediatek DRM driver to get confused? I would have expected that if the system went fully into suspend that it would have totally powered off the panel and then when we resume the panel shouldn't maintain any state from before the suspend. ...so this needs to be debugged more and a real fix needs to be made. > The "backlight_off_to_display_off_delay_ms" was added between > "backlight off" and "display off" to prevent "display off" from being > executed when the backlight is not fully powered off, which may cause > a white screen. However, we removed this > "backlight_off_to_display_off_delay_ms" and found that this situation > did not occur. Therefore, in order to solve the problem mentioned > above, we reduced it from 100ms to 3ms (tCMD_OFF >= 1ms). > > This is the timing specification for the two panels: > 1. Kingdisplay panel timing spec: > https://github.com/KD54183/-JD9365DA_Power-On-Off-Sequence_V0120240923 > 2. LMFBX101117480 timing spec: https://github.com/chiohsin-lo/TDY-JD_LIB > > Fixes: 2b976ad760dc ("drm/panel: jd9365da: Support for kd101ne3-40ti MIPI-DSI panel") > Fixes: c4ce398cf18a ("drm/panel: jd9365da: Support for Melfas lmfbx101117480 MIPI-DSI panel") > > Signed-off-by: Zhaoxiong Lv <lvzhaoxiong@huaqin.corp-partner.google.com> For future reference: please don't put a blank line between the "Fixes" and the "Signed-off-by". -Doug
© 2016 - 2024 Red Hat, Inc.