1
0
Fork 0
alistair23-linux/drivers/gpu/drm
Hans de Goede 6fdb335f1c drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence
Commit 25b4620ee8 ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
added an intel_dsi_msleep() helper which skips sleeping if the
MIPI-sequences have a version of 3 or newer and the panel is in vid-mode;
and it moved a bunch of msleep-s over to this new helper.

This was based on my reading of the big comment around line 730 which
starts with "Panel enable/disable sequences from the VBT spec.",
where the "v3 video mode seq" column does not have any wait t# entries.

Given that this code has been used on a lot of different devices without
issues until now, it seems that my interpretation of the spec here is
mostly correct.

But now I have encountered one device, an Acer Aspire Switch 10 E
SW3-016, where the panel will not light up unless we do actually honor the
panel_on_delay after exexuting the MIPI_SEQ_PANEL_ON sequence.

What seems to set this model apart is that it is lacking a
MIPI_SEQ_DEASSERT_RESET sequence, which is where the power-on
delay usually happens.

Fix the panel not lighting up on this model by using an unconditional
msleep(panel_on_delay) instead of intel_dsi_msleep() when there is
no MIPI_SEQ_DEASSERT_RESET sequence.

Fixes: 25b4620ee8 ("drm/i915/dsi: Skip delays for v3 VBTs in vid-mode")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201118124058.26021-1-hdegoede@redhat.com
2021-01-07 11:54:09 +01:00
..
amd drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
arc drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
arm drm/komeda: Convert to DEFINE_SHOW_ATTRIBUTE 2020-10-23 13:52:15 +01:00
armada drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
aspeed drm/aspeed: Fix Kconfig warning & subsequent build errors 2020-10-12 15:14:33 +10:30
ast drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
atmel-hlcdc drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
bochs Linux 5.8 2020-08-11 11:58:31 +10:00
bridge drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
etnaviv drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
exynos drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
fsl-dcu drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
gma500 drm/gma500: fix double free of gma_connector 2020-10-05 15:52:37 +02:00
hisilicon drm/hisilicon: Use the same style of variable type in hibmc_drm_drv 2020-10-18 20:36:27 -04:00
i2c sound updates for 5.9 2020-08-06 14:27:31 -07:00
i810 drm/i810: make i810_flush_queue() return void 2020-09-11 10:54:17 +02:00
i915 drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence 2021-01-07 11:54:09 +01:00
imx drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
ingenic drm/ingenic: Fix bad revert 2020-10-12 20:26:14 +02:00
lib
lima drm: lima: fix common struct sg_table related issues 2020-09-10 08:18:35 +02:00
mcde drm/mcde: Fix handling of platform_get_irq() error 2020-10-17 09:32:56 +02:00
mediatek drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
meson drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
mga
mgag200 drm/mgag200: fix spelling mistake "expeced" -> "expected" 2020-08-27 11:17:52 +02:00
msm drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
mxsfb drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
nouveau drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
omapdrm drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
panel drm/panel: mantix: Fix panel reset 2020-10-23 10:05:17 +02:00
panfrost drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
pl111 drm/pl111: Introduce GEM object functions 2020-09-25 09:21:14 +02:00
qxl drm/ttm: merge ttm_dma_tt back into ttm_tt 2020-10-26 14:45:42 +01:00
r128 drm: delete drm_pci.h 2020-04-03 17:11:41 +02:00
radeon drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
rcar-du drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
rockchip drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
savage treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
scheduler drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
selftests drm/mst: Add support for QUERY_STREAM_ENCRYPTION_STATUS MST sideband message 2020-09-01 13:02:33 +05:30
shmobile drm/shmobile: Set GEM CMA functions with DRM_GEM_CMA_DRIVER_OPS 2020-06-10 09:05:18 +02:00
sis
sti drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
stm drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
sun4i drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
tdfx
tegra drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
tidss drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
tilcdc drm/tilcdc: Remove tilcdc_crtc_max_width(), use private data 2020-10-10 20:02:14 +03:00
tiny drm/mipi-dbi: Remove ->enabled 2020-06-24 09:17:34 +02:00
ttm drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
tve200 drm/tve200: Fix handling of platform_get_irq() error 2020-10-17 09:33:01 +02:00
udl drm/udl: Use GEM vmap/mmap function from SHMEM helpers 2020-06-10 10:17:21 +02:00
v3d drm/v3d: Fix double free in v3d_submit_cl_ioctl() 2020-10-26 11:43:31 +01:00
vboxvideo drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
vc4 drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
vgem drm/vgem: Introduce GEM object functions 2020-09-25 09:21:30 +02:00
via drm/via: reduce no need mutex_lock area 2020-10-17 10:10:24 +02:00
virtio drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
vkms drm/vkms: fbdev emulation support 2020-10-20 10:34:40 +02:00
vmwgfx drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
xen drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
xlnx drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
zte drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
Kconfig drm/vkms: Switch to shmem helpers 2020-10-15 23:37:58 +02:00
Makefile drm/imx: compile imx directory by default 2020-09-09 16:39:48 +02:00
drm_agpsupport.c
drm_atomic.c drm/atomic: document and enforce rules around "spurious" EBUSY 2020-10-08 11:30:03 +02:00
drm_atomic_helper.c drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
drm_atomic_state_helper.c drm/atomic-helper: reset vblank on crtc reset 2020-07-02 20:25:51 +02:00
drm_atomic_uapi.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_auth.c drm/auth: make drm_{set,drop}master_ioctl symmetrical 2020-06-15 14:49:50 +01:00
drm_blend.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_bridge.c drm: bridge: Pass drm_display_info to drm_bridge_funcs .mode_valid() 2020-06-23 19:53:27 +02:00
drm_bridge_connector.c drm/bridge_connector: Set default status connected for eDP connectors 2020-08-26 19:11:41 +02:00
drm_bufs.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
drm_cache.c drm: core: fix common struct sg_table related issues 2020-09-10 08:17:48 +02:00
drm_client.c drm/client: Add drm_client_framebuffer_flush() 2020-05-26 13:31:01 +02:00
drm_client_modeset.c drm: Nuke mode->vrefresh 2020-05-27 14:31:42 +03:00
drm_color_mgmt.c drm/modeset-lock: Take the modeset BKL for legacy drivers 2020-08-17 13:41:50 -04:00
drm_connector.c drm: document that user-space should avoid parsing EDIDs 2020-10-22 13:49:14 +02:00
drm_context.c drm: context: Clean up documentation 2020-03-16 09:23:55 +01:00
drm_crtc.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_crtc_helper.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_crtc_helper_internal.h drm/probe_helper: Add drm_connector_helper_funcs.mode_valid_ctx 2020-07-13 13:29:20 -04:00
drm_crtc_internal.h drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_damage_helper.c
drm_debugfs.c drm/debug: Expose connector VRR monitor range via debugfs 2020-06-25 15:47:14 -07:00
drm_debugfs_crc.c drm/crc-debugfs: Fix memleak in crc_control_write 2020-09-01 09:45:44 +02:00
drm_dma.c drm: delete drm_pci.h 2020-04-03 17:11:41 +02:00
drm_dp_aux_dev.c drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor() 2020-10-15 13:58:54 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c Merge tag 'drm-intel-next-queued-2020-11-03' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2020-11-04 12:17:34 +10:00
drm_dp_mst_topology.c drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
drm_dp_mst_topology_internal.h
drm_drv.c drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_dsc.c drm/dsc: add helper for calculating rc buffer size from DPCD 2020-12-10 10:49:47 +02:00
drm_dumb_buffers.c
drm_edid.c drm/dp: fix a kernel-doc issue at drm_edid.c 2020-10-27 11:20:42 +01:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c drm: encoder_slave: use new I2C API 2020-06-19 09:20:21 +02:00
drm_fb_cma_helper.c drm: Fix misspellings of "Analog Devices" 2020-04-21 08:15:03 +02:00
drm_fb_helper.c drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
drm_file.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add drm_fb_swab() 2020-05-26 13:33:08 +02:00
drm_fourcc.c drm/fourcc: Add AXBXGXRX106106106106 format 2020-10-20 20:51:42 +01:00
drm_framebuffer.c gpu/drm: cleanup coding style a bit 2020-09-09 11:45:18 +02:00
drm_gem.c drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
drm_gem_cma_helper.c drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
drm_gem_framebuffer_helper.c drm: remove _unlocked suffix in drm_gem_object_put_unlocked 2020-05-19 22:31:31 +01:00
drm_gem_shmem_helper.c drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
drm_gem_ttm_helper.c drm/ttm: merge offset and base in ttm_bus_placement 2020-09-08 10:43:30 +02:00
drm_gem_vram_helper.c drm/ttm: replace last move_notify with delete_mem_notify 2020-10-22 10:11:49 +10:00
drm_hashtab.c
drm_hdcp.c drm: Fix HDCP failures when SRM fw is missing 2020-05-05 14:01:53 -04:00
drm_internal.h drm: Give irq_by_busid drm_legacy_ prefix 2020-10-21 18:05:11 +02:00
drm_ioc32.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_ioctl.c drm: Give irq_by_busid drm_legacy_ prefix 2020-10-21 18:05:11 +02:00
drm_irq.c drm: use drm_dev_has_vblank more 2020-05-29 12:58:11 +02:00
drm_kms_helper_common.c
drm_lease.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_legacy.h
drm_legacy_misc.c
drm_lock.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_managed.c drm/dev: Remove drm_dev_init 2020-09-21 10:45:08 +02:00
drm_memory.c
drm_mipi_dbi.c Linux 5.8 2020-08-11 11:58:31 +10:00
drm_mipi_dsi.c drm: mipi-dsi: Convert logging to drm_* functions. 2020-07-10 20:21:45 +02:00
drm_mm.c drm/mm: cleanup and improve next_hole_*_addr() 2020-06-23 15:46:40 +02:00
drm_mode_config.c drm : Insert blank lines after declarations. 2020-07-02 15:26:00 +02:00
drm_mode_object.c drm/modeset-lock: Take the modeset BKL for legacy drivers 2020-08-17 13:41:50 -04:00
drm_modes.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c Linux 5.8 2020-08-11 11:58:31 +10:00
drm_panel.c drm/panel: Add helper for reading DT rotation 2020-08-16 17:12:18 +02:00
drm_panel_orientation_quirks.c drm: Added orientation quirk for ASUS tablet model T103HAF 2020-08-04 11:45:23 +02:00
drm_pci.c drm: Give irq_by_busid drm_legacy_ prefix 2020-10-21 18:05:11 +02:00
drm_plane.c drm: Introduce plane and CRTC scaling filter properties 2020-10-21 12:19:54 +03:00
drm_plane_helper.c
drm_prime.c drm-misc-next for 5.11: 2020-11-04 11:49:10 +10:00
drm_print.c
drm_probe_helper.c Merge tag 'drm-intel-next-2020-07-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2020-07-31 14:42:37 +10:00
drm_property.c
drm_rect.c
drm_scatter.c gpu/drm: remove the powerpc hack in drm_legacy_sg_alloc 2020-06-02 10:59:11 -07:00
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/atomic: Pass the full state to CRTC atomic enable/disable 2020-10-09 09:55:59 +02:00
drm_syncobj.c drm/syncobj: Tune down unordered timeline DRM_ERROR 2020-08-02 15:22:31 +02:00
drm_sysfs.c drm/connector: notify userspace on hotplug after register complete 2020-06-03 10:24:23 +02:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/atomic-helper: Remove the timestamping constant update from drm_atomic_helper_update_legacy_modeset_state() 2020-09-14 22:37:31 +03:00
drm_vblank_work.c This tree adds the sched_set_fifo*() encapsulation APIs to remove 2020-08-06 11:55:43 -07:00
drm_vm.c drm-misc-next for v5.9: 2020-06-24 15:45:51 +10:00
drm_vma_manager.c
drm_writeback.c drm/writeback: don't set fence->ops to default 2020-05-20 20:03:45 +02:00