1
0
Fork 0
alistair23-linux/drivers/gpu/drm/i915/display
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
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i9xx_plane.c drm/i915: refactor i915 plane code into separate file. 2020-12-22 10:09:50 +02:00
i9xx_plane.h drm/i915: refactor i915 plane code into separate file. 2020-12-22 10:09:50 +02:00
icl_dsi.c drm/i915/icl: Fix initing the DSI DSC power refcount during HW readout 2020-12-10 20:39:43 +02:00
intel_acpi.c
intel_acpi.h
intel_atomic.c drm/i915/dp: Add from_crtc_state to copy color blobs 2020-11-15 18:30:05 -08:00
intel_atomic.h drm/i915/dp: Add from_crtc_state to copy color blobs 2020-11-15 18:30:05 -08:00
intel_atomic_plane.c drm/i915: Track logically enabled planes for hw state 2020-12-04 19:06:18 +02:00
intel_atomic_plane.h drm/i915: Add bigjoiner aware plane clipping checks 2020-11-18 11:42:04 -08:00
intel_audio.c drm/i915: Nuke force_min_cdclk_changed 2020-09-17 20:10:21 +03:00
intel_audio.h
intel_bios.c drm/i915/rkl: new rkl ddc map for different PCH 2021-01-05 19:32:34 -05:00
intel_bios.h
intel_bw.c drm/i915: Fix wrong CDCLK adjustment changes 2020-06-04 11:11:56 -07:00
intel_bw.h drm/i915: Fix includes and local vars order 2020-05-22 14:40:35 +01:00
intel_cdclk.c drm/i915: Add intel_atomic_add_affected_planes() 2020-12-04 19:07:24 +02:00
intel_cdclk.h drm/i915: Nuke force_min_cdclk_changed 2020-09-17 20:10:21 +03:00
intel_color.c drm/i915: Replace some gamma_mode ifs with switches 2020-09-28 18:09:52 +03:00
intel_color.h
intel_combo_phy.c drm/i915/display: Suppress "Combo PHY A HW state changed unexpectedly" 2020-11-27 23:32:39 +00:00
intel_combo_phy.h
intel_connector.c drm/i915: Split intel_attach_colorspace_property() into HDMI vs. DP variants 2020-12-02 01:29:31 +05:30
intel_connector.h drm/i915: Split intel_attach_colorspace_property() into HDMI vs. DP variants 2020-12-02 01:29:31 +05:30
intel_crt.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_crt.h
intel_csr.c drm/i915/dg1: Load DMC 2020-10-15 14:14:33 -07:00
intel_csr.h
intel_cursor.c drm/i915: refactor cursor code out of i915_display.c 2020-12-22 10:09:05 +02:00
intel_cursor.h drm/i915: refactor cursor code out of i915_display.c 2020-12-22 10:09:05 +02:00
intel_ddi.c drm/i915/rkl: Add DP vswing programming tables 2021-01-06 15:54:33 -08:00
intel_ddi.h drm/i915: Eliminate intel_dp.regs.dp_tp_{ctl,status} 2020-10-01 16:45:57 +03:00
intel_de.h
intel_display.c drm/i915/display: Split and export main surface calculation from skl_check_main_surface() 2021-01-05 05:32:53 -08:00
intel_display.h drm/i915/display: Split and export main surface calculation from skl_check_main_surface() 2021-01-05 05:32:53 -08:00
intel_display_debugfs.c drm/i915/display: Record the plane update times for debugging 2020-12-02 22:17:28 +00:00
intel_display_debugfs.h drm/i915/display: Record the plane update times for debugging 2020-12-02 22:17:28 +00:00
intel_display_power.c drm/i915: Make intel_display_power_put_unchecked() an internal-only function 2020-12-03 15:31:55 +02:00
intel_display_power.h drm/i915: Make intel_display_power_put_unchecked() an internal-only function 2020-12-03 15:31:55 +02:00
intel_display_types.h drm/i915/dp: Track pm_qos per connector 2020-12-30 21:22:55 +00:00
intel_dp.c drm/i915/dp: Track pm_qos per connector 2020-12-30 21:22:55 +00:00
intel_dp.h drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3. 2020-11-18 11:41:10 -08:00
intel_dp_aux_backlight.c drm/i915/dp: Add register definitions for Intel HDR backlight interface 2020-12-23 17:44:56 +02:00
intel_dp_aux_backlight.h
intel_dp_hdcp.c drm/i915: Add HDCP 1.4 support for MST connectors 2020-09-01 13:03:05 +05:30
intel_dp_link_training.c drm/i915: Switch to LTTPR non-transparent mode link training 2020-10-12 15:33:03 +03:00
intel_dp_link_training.h drm/i915: Switch to LTTPR non-transparent mode link training 2020-10-12 15:33:03 +03:00
intel_dp_mst.c drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3. 2020-11-18 11:41:10 -08:00
intel_dp_mst.h drm/i915/display: prefer dig_port to reference intel_digital_port 2020-07-02 11:26:37 -07:00
intel_dpio_phy.c drm/i915: Plumb crtc_state to link training 2020-10-01 16:45:57 +03:00
intel_dpio_phy.h drm/i915: Plumb crtc_state to link training 2020-10-01 16:45:57 +03:00
intel_dpll_mgr.c drm/i915: Use actual readout results for .get_freq() 2020-11-16 21:42:55 +02:00
intel_dpll_mgr.h drm/i915: Use actual readout results for .get_freq() 2020-11-16 21:42:55 +02:00
intel_dsb.c drm/i915/display: fix missing null check on allocated dsb object 2020-06-30 14:26:51 +03:00
intel_dsb.h drm/i915/dsb: Pre allocate and late cleanup of cmd buffer 2020-05-23 15:42:28 +05:30
intel_dsi.c drm/i915/dp: Allow big joiner modes in intel_dp_mode_valid(), v3. 2020-11-18 11:41:10 -08:00
intel_dsi.h drm/i915/dsi: Initiate frame request in cmd mode 2020-09-28 20:02:14 +03:00
intel_dsi_dcs_backlight.c drm/i915: Pass down brightness values to enable/disable backlight callbacks 2020-12-23 17:44:04 +02:00
intel_dsi_dcs_backlight.h
intel_dsi_vbt.c drm/i915: drop a bunch of superfluous inlines 2020-04-21 09:31:37 +03:00
intel_dvo.c drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ() 2020-12-02 17:29:46 +02:00
intel_dvo.h
intel_dvo_dev.h
intel_fbc.c Revert "drm/i915/display/fbc: Disable fbc by default on TGL" 2020-12-02 19:08:34 +05:30
intel_fbc.h
intel_fbdev.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just removing the outputs 2020-09-15 14:57:13 +03:00
intel_fbdev.h
intel_fifo_underrun.c drm/i915/fifo_underrun: convert to drm_device based logging. 2020-03-11 12:20:43 +02:00
intel_fifo_underrun.h
intel_frontbuffer.c drm/i915: Add a couple of missing i915_active_fini() 2020-08-17 16:16:34 -04:00
intel_frontbuffer.h
intel_global_state.c drm/i915: Fix global state use-after-frees with a refcount 2020-06-02 16:35:24 +03:00
intel_global_state.h drm/i915: Fix global state use-after-frees with a refcount 2020-06-02 16:35:24 +03:00
intel_gmbus.c drm/i915/dg1: gmbus pin mapping 2020-10-07 13:51:21 -07:00
intel_gmbus.h
intel_hdcp.c drm/i915: dont retry stream management at seq_num_m roll over 2020-09-24 15:44:57 +05:30
intel_hdcp.h drm/i915: Plumb port through hdcp init 2020-09-01 13:02:33 +05:30
intel_hdmi.c drm/i915/display: Implement DRM infoframe read for LSPCON 2020-12-02 01:29:52 +05:30
intel_hdmi.h drm/i915: Do YCbCr 444->420 conversion via DP protocol converters 2020-09-17 18:43:09 +03:00
intel_hotplug.c drm/i915: Refactor .hpd_irq_setup() calls a bit 2020-10-20 20:18:53 +03:00
intel_hotplug.h drm/i915: Reorder hpd init vs. display resume 2020-10-20 20:18:32 +03:00
intel_lpe_audio.c drm/i915/lpe_audio: convert to drm_device based logging macros. 2020-03-11 12:20:43 +02:00
intel_lpe_audio.h
intel_lspcon.c drm/i915/display: Implement DRM infoframe read for LSPCON 2020-12-02 01:29:52 +05:30
intel_lspcon.h drm/i915/display: Implement DRM infoframe read for LSPCON 2020-12-02 01:29:52 +05:30
intel_lvds.c drm/i915: Wait for LVDS panel power cycle delay on reboot 2020-10-09 21:12:13 +03:00
intel_lvds.h
intel_opregion.c drm/i915/display: remove debug message from error path 2020-10-28 00:33:46 -07:00
intel_opregion.h
intel_overlay.c drm/i915: Protect overlay colorkey macro arguments 2020-05-15 20:12:56 +03:00
intel_overlay.h
intel_panel.c drm/i915: Pass down brightness values to enable/disable backlight callbacks 2020-12-23 17:44:04 +02:00
intel_panel.h drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_pipe_crc.c
intel_pipe_crc.h
intel_psr.c drm/i915/display/psr: Program plane's calculated offset to plane SF register 2021-01-05 05:32:56 -08:00
intel_psr.h drm/i915/display: Use initial_fastset_check() to compute and apply the initial PSR state 2020-11-05 05:38:51 -08:00
intel_quirks.c
intel_quirks.h
intel_sdvo.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_sdvo.h
intel_sdvo_regs.h drm/i915/sdvo: Fix SDVO colorimetry bit defines 2020-07-09 16:14:47 +03:00
intel_sprite.c drm/i915: refactor i915 plane code into separate file. 2020-12-22 10:09:50 +02:00
intel_sprite.h drm/i915/display: Record the plane update times for debugging 2020-12-02 22:17:28 +00:00
intel_tc.c drm/i915/display/tc: Only WARN once for bogus tc port flag 2020-12-11 15:07:56 +02:00
intel_tc.h drm/i915: Turn intel_digital_port_connected() in a vfunc 2020-05-11 16:25:15 +03:00
intel_tv.c drm/i915: Reduce INTEL_DISPLAY_ENABLED to just treat outputs as disconnected 2020-09-15 15:28:21 +03:00
intel_tv.h
intel_vbt_defs.h drm/i915/rkl: new rkl ddc map for different PCH 2021-01-05 19:32:34 -05:00
intel_vdsc.c drm/i915/dsc: make rc_model_size an encoder defined value 2020-12-10 10:49:27 +02:00
intel_vdsc.h drm/i915/dp: Modify VDSC helpers to configure DSC for Bigjoiner slave 2020-11-18 11:41:10 -08:00
intel_vga.c
intel_vga.h
vlv_dsi.c 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
vlv_dsi_pll.c drm/i915/vlv_dsi_pll: fix spelling mistake "Cant" -> "Can't" 2020-08-27 16:28:21 +03:00