linux-stable/drivers/gpu/drm
Cong Yang 5820a1932c drm/panel: ili9882t: Avoid blurred screen from fast sleep
At present, we have found that there may be a problem of blurred
screen during fast sleep/resume. The direct cause of the blurred
screen is that the IC does not receive 0x28/0x10. Because of the
particularity of the IC, before the panel enters sleep hid must
stop scanning, as i2c_hid_core_suspend before ili9882t_disable.
If move the ili9882t_enter_sleep_mode function to ili9882t_unprepare,
touch reset will pull low before panel entersleep, which does not meet
the timing requirements.. So in order to solve this problem, the IC
can handle it through the exception mechanism when it cannot receive
0x28/0x10 command. Handling exceptions requires a reset 50ms delay.
Refer to vendor detailed analysis [1].

Ilitek vendor also suggested switching the page before entering sleep to
avoid panel IC not receiving 0x28/0x10 command.

Note: 0x28 is display off, 0x10 is sleep in.

[1]: https://github.com/ILITEK-LoganLin/Document/tree/main/ILITEK_Power_Sequence

Signed-off-by: Cong Yang <yangcong5@huaqin.corp-partner.google.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20231013091844.804310-3-yangcong5@huaqin.corp-partner.google.com
2023-10-19 14:45:28 -07:00
..
amd Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
arm Merge tag 'drm-misc-next-2023-09-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-09-29 08:27:15 +10:00
armada drm/armada: Call drm_atomic_helper_shutdown() at shutdown time 2023-09-21 10:38:11 -07:00
aspeed drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers 2023-09-21 10:51:55 -07:00
ast drm/ast: Move register constants to ast_reg.h 2023-10-19 13:55:44 +02:00
atmel-hlcdc drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
bridge drm/bridge: lt9611uxc: fix the race in the error path 2023-10-16 11:44:27 +02:00
ci drm: Add initial ci/ subdirectory 2023-08-29 19:56:11 +02:00
display Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
etnaviv Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2023-08-18 06:42:12 +10:00
exynos Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
fsl-dcu drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
gma500 drm/gma500: refactor deprecated strncpy 2023-09-27 12:38:54 +02:00
gud
hisilicon drm/hisilicon/kirin: Call drm_atomic_helper_shutdown() at shutdown/unbind time 2023-09-21 10:54:20 -07:00
hyperv drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
i2c
i915 drm: Replace drm_framebuffer plane size functions with its equivalents 2023-10-12 09:51:29 +02:00
imx Merge tag 'drm-misc-next-2023-09-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-09-29 08:27:15 +10:00
ingenic drm/ingenic: Call drm_atomic_helper_shutdown() at shutdown time 2023-09-13 11:12:20 -07:00
kmb
lib
lima
logicvc drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
loongson drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
mcde drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
mediatek drm/mediatek: Convert to platform remove callback returning void 2023-09-09 16:12:26 +02:00
meson
mgag200 drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers 2023-09-21 10:51:55 -07:00
msm Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
mxsfb
nouveau Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
omapdrm drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
panel drm/panel: ili9882t: Avoid blurred screen from fast sleep 2023-10-19 14:45:28 -07:00
panfrost Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
pl111 drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers 2023-09-21 10:51:55 -07:00
qxl Merge tag 'drm-misc-next-2023-09-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-09-29 08:27:15 +10:00
radeon Merge drm/drm-fixes into drm-misc-fixes 2023-09-12 08:53:30 +02:00
renesas Merge tag 'drm-misc-next-2023-09-11-1' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-09-22 16:28:36 +10:00
rockchip drm/rockchip: remove NR_LAYERS macro on vop2 2023-10-16 15:05:24 +02:00
scheduler
solomon drm/ssd130x: Add support for the SSD132x OLED controller family 2023-10-18 09:53:29 +02:00
sprd
sti drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
stm drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers 2023-09-21 10:51:55 -07:00
sun4i Merge tag 'drm-misc-next-2023-09-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-09-29 08:27:15 +10:00
tegra drm/tegra: gem: Do not return NULL in tegra_bo_mmap() 2023-10-11 22:52:44 +02:00
tests Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
tidss
tilcdc drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers 2023-09-21 10:51:55 -07:00
tiny drm/simpledrm: Fix power domain device link validity check 2023-10-12 10:39:48 +02:00
ttm Short summary of fixes pull: 2023-08-25 06:28:33 +10:00
tve200 drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers 2023-09-21 10:51:55 -07:00
udl
v3d drm/v3d: Annotate struct v3d_perfmon with __counted_by 2023-10-05 11:31:33 +02:00
vboxvideo drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers 2023-09-21 10:51:55 -07:00
vc4 Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
vgem
virtio drm/virtio: Annotate struct virtio_gpu_object_array with __counted_by 2023-10-05 11:30:50 +02:00
vkms Revert "drm/vkms: Fix race-condition between the hrtimer and the atomic commit" 2023-09-14 07:48:19 -03:00
vmwgfx Merge drm/drm-next into drm-misc-next 2023-10-11 09:50:59 +02:00
xen
xlnx
drm_agpsupport.c
drm_aperture.c
drm_atomic.c Merge tag 'drm-misc-next-2023-09-11-1' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-09-22 16:28:36 +10:00
drm_atomic_helper.c drm/atomic-helper: drm_atomic_helper_shutdown(NULL) should be a noop 2023-09-13 08:36:18 -07:00
drm_atomic_state_helper.c
drm_atomic_uapi.c
drm_auth.c drm: Update file owner during use 2023-09-20 15:27:44 +02:00
drm_blend.c
drm_bridge.c drm/debugfs: rework debugfs directory creation v5 2023-09-01 08:51:18 +02:00
drm_bridge_connector.c drm/bridge_connector: implement oob_hotplug_event 2023-10-11 13:20:22 +03:00
drm_buddy.c Merge tag 'drm-misc-next-2023-09-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next 2023-09-29 08:27:15 +10:00
drm_bufs.c
drm_cache.c
drm_client.c drm/debugfs: rework debugfs directory creation v5 2023-09-01 08:51:18 +02:00
drm_client_modeset.c
drm_color_mgmt.c
drm_connector.c drm: Add HPD state to drm_connector_oob_hotplug_event() 2023-10-11 13:20:22 +03:00
drm_context.c
drm_crtc.c
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h drm/debugfs: rework debugfs directory creation v5 2023-09-01 08:51:18 +02:00
drm_damage_helper.c
drm_debugfs.c drm/gpuvm: rename struct drm_gpuva_manager to struct drm_gpuvm 2023-09-26 01:51:28 +02:00
drm_debugfs_crc.c
drm_displayid.c
drm_dma.c
drm_drv.c drm/debugfs: rework drm_debugfs_create_files implementation v2 2023-09-01 08:54:12 +02:00
drm_dumb_buffers.c
drm_edid.c Merge tag 'drm-intel-next-2023-09-29' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2023-10-04 13:55:19 +10:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_exec.c drm/drm_exec: Work around a WW mutex lockdep oddity 2023-09-07 10:30:12 +02:00
drm_fb_dma_helper.c
drm_fb_helper.c
drm_fbdev_dma.c
drm_fbdev_generic.c
drm_file.c drm/drm_file: Add DRM obj's RSS reporting function for fdinfo 2023-10-04 13:04:15 +02:00
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c
drm_framebuffer.c drm: Replace drm_framebuffer plane size functions with its equivalents 2023-10-12 09:51:29 +02:00
drm_gem.c
drm_gem_atomic_helper.c
drm_gem_dma_helper.c
drm_gem_framebuffer_helper.c
drm_gem_shmem_helper.c Linux 6.5-rc7 2023-08-24 07:26:06 +10:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c
drm_gpuvm.c drm/gpuvm: Dual-licence the drm_gpuvm code GPL-2.0 OR MIT 2023-10-17 10:55:30 +02:00
drm_hashtab.c
drm_internal.h Merge tag 'drm-intel-next-2023-09-29' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2023-10-04 13:55:19 +10:00
drm_ioc32.c
drm_ioctl.c drm: Update file owner during use 2023-09-20 15:27:44 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h
drm_legacy_misc.c
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c drm/debugfs: remove dev->debugfs_list and debugfs_mutex v2 2023-09-01 08:53:05 +02:00
drm_mode_object.c
drm_modes.c
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_panel_orientation_quirks.c
drm_pci.c
drm_plane.c
drm_plane_helper.c
drm_prime.c
drm_print.c
drm_privacy_screen.c
drm_privacy_screen_x86.c
drm_probe_helper.c drm: Add an HPD poll helper to reschedule the poll work 2023-08-23 17:14:37 -04:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_suballoc.c
drm_syncobj.c
drm_sysfs.c drm/sysfs: Register "ddc" symlink later 2023-09-15 14:46:42 +03:00
drm_trace.h
drm_trace_points.c
drm_vblank.c
drm_vblank_work.c drm/vblank: Warn when silently cancelling vblank works 2023-10-03 16:01:03 +03:00
drm_vm.c
drm_vma_manager.c
drm_writeback.c
Kconfig drm/gpuvm: allow building as module 2023-09-26 01:58:28 +02:00
Makefile drm/gpuvm: allow building as module 2023-09-26 01:58:28 +02:00