1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/i915/display
Lyude Paul a44f42ba7f drm/i915/dp: Perform 30ms delay after source OUI write
While working on supporting the Intel HDR backlight interface, I noticed
that there's a couple of laptops that will very rarely manage to boot up
without detecting Intel HDR backlight support - even though it's supported
on the system. One example of such a laptop is the Lenovo P17 1st
generation.

Following some investigation Ville Syrjälä did through the docs they have
available to them, they discovered that there's actually supposed to be a
30ms wait after writing the source OUI before we begin setting up the rest
of the backlight interface.

This seems to be correct, as adding this 30ms delay seems to have
completely fixed the probing issues I was previously seeing. So - let's
start performing a 30ms wait after writing the OUI, which we do in a manner
similar to how we keep track of PPS delays (e.g. record the timestamp of
the OUI write, and then wait for however many ms are left since that
timestamp right before we interact with the backlight) in order to avoid
waiting any longer then we need to. As well, this also avoids us performing
this delay on systems where we don't end up using the HDR backlight
interface.

V3:
* Move last_oui_write into intel_dp
V2:
* Move panel delays into intel_pps

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Fixes: 4a8d79901d ("drm/i915/dp: Enable Intel's HDR backlight interface (only SDR for now)")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: <stable@vger.kernel.org> # v5.12+
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211130212912.212044-1-lyude@redhat.com
(cherry picked from commit c7c90b0b84)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2021-12-01 09:17:08 -05:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
g4x_dp.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
g4x_dp.h drm/i915: Give g4x_{dp,hdmi}.c g4x_ namespace 2021-03-19 18:31:49 +02:00
g4x_hdmi.c drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown() 2021-11-09 10:02:41 -05:00
g4x_hdmi.h drm/i915: Give g4x_{dp,hdmi}.c g4x_ namespace 2021-03-19 18:31:49 +02:00
i9xx_plane.c drm/i915/plane: add intel_plane_helper_add() helper 2021-07-08 14:05:15 +03:00
i9xx_plane.h drm/i915: migrate i9xx plane get config 2021-02-08 12:09:28 +02:00
icl_dsi.c drm/i915/dsi/xelpd: Fix the bit mask for wakeup GB 2021-11-17 08:46:47 -05:00
intel_acpi.c drm/i915: Free the returned object of acpi_evaluate_dsm() 2021-10-13 13:41:16 +03:00
intel_acpi.h drm/i915: Associate ACPI connector nodes with connector entries (v2) 2021-09-09 12:59:07 +02:00
intel_atomic.c Merge drm/drm-next into drm-intel-next 2021-05-26 09:40:54 -04:00
intel_atomic.h drm/i915/adl_p: MBUS programming 2021-05-19 23:59:23 -07:00
intel_atomic_plane.c drm/i915/display: move pin/unpin fb/plane code to a new file. 2021-10-12 12:58:40 +03:00
intel_atomic_plane.h drm/i915/plane: add intel_plane_helper_add() helper 2021-07-08 14:05:15 +03:00
intel_audio.c drm/i915/audio: Use BIOS provided value for RKL HDA link 2021-10-05 11:52:41 +03:00
intel_audio.h
intel_backlight.c drm/i915/backlight: mass rename functions to have intel_backlight_ prefix 2021-08-26 10:40:41 +03:00
intel_backlight.h drm/i915/backlight: mass rename functions to have intel_backlight_ prefix 2021-08-26 10:40:41 +03:00
intel_bios.c drm/i915: Fix type1 DVI DP dual mode adapter heuristic for modern platforms 2021-11-01 16:39:18 -04:00
intel_bios.h drm/i915/bios: add intel_bios_encoder_data to encoder, use for iboost 2021-03-18 14:44:16 +02:00
intel_bw.c drm/i915: split out intel_pcode.[ch] to separate file 2021-10-14 18:04:17 +03: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/cdclk: put the cdclk vtables in const data 2021-10-27 06:10:04 -04:00
intel_cdclk.h drm/i915: add wrappers around cdclk vtable funcs. 2021-09-29 08:58:39 +03:00
intel_color.c drm/i915/dsi: move dsi pll modeset asserts to vlv_dsi_pll.c 2021-10-01 10:48:59 +03:00
intel_color.h
intel_combo_phy.c drm/i915: Add all per-lane register definitions for icl combo phy 2021-10-14 18:47:25 +03:00
intel_combo_phy.h
intel_connector.c drm/i915/debugfs: pass intel_connector to intel_connector_debugfs_add() 2021-10-01 13:45:37 +03:00
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: s/pipe/transcoder/ when dealing with PIPECONF/TRANSCONF 2021-09-15 18:08:29 +03:00
intel_crt.h drm/i915: Remove repeated declaration 2021-03-29 12:39:35 -07:00
intel_crtc.c drm/i915/display: remove explicit CNL handling from intel_crtc.c 2021-07-30 10:11:24 -07:00
intel_crtc.h drm/i915/display: move crtc and dpll declarations where they belong 2021-04-28 11:17:11 +03:00
intel_cursor.c drm/i915/display: move pin/unpin fb/plane code to a new file. 2021-10-12 12:58:40 +03: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/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown() 2021-11-09 10:02:41 -05:00
intel_ddi.h drm/i915: Pass the lane to intel_ddi_level() 2021-10-04 13:04:36 +03:00
intel_ddi_buf_trans.c drm/i915/dg2: fix snps buf trans for uhbr 2021-10-07 20:56:10 +03:00
intel_ddi_buf_trans.h drm/i915: Shrink {icl_mg,tgl_dkl}_phy_ddi_buf_trans 2021-10-14 18:45:59 +03:00
intel_de.h drm/i915: Include intel_de_{read,write}_fw() in i915_reg_rw traces 2021-05-05 21:05:58 +03:00
intel_display.c drm/i915/adlp/fb: Prevent the mapping of redundant trailing padding NULL pages 2021-11-09 10:02:48 -05:00
intel_display.h drm/i915/display: move pin/unpin fb/plane code to a new file. 2021-10-12 12:58:40 +03:00
intel_display_debugfs.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
intel_display_debugfs.h drm/i915/debugfs: pass intel_connector to intel_connector_debugfs_add() 2021-10-01 13:45:37 +03:00
intel_display_power.c drm/i915: split out intel_pcode.[ch] to separate file 2021-10-14 18:04:17 +03:00
intel_display_power.h drm/i915: Introduce with_intel_display_power_if_enabled() 2021-09-15 18:08:29 +03:00
intel_display_types.h drm/i915/dp: Perform 30ms delay after source OUI write 2021-12-01 09:17:08 -05:00
intel_dmc.c drm/i915/display/dmc: Set DC_STATE_DEBUG_MASK_CORES after firmware load 2021-09-23 10:06:15 -07:00
intel_dmc.h drm/i915/adl_p: Pipe B DMC Support 2021-06-21 16:15:29 -07:00
intel_dp.c drm/i915/dp: Perform 30ms delay after source OUI write 2021-12-01 09:17:08 -05:00
intel_dp.h drm/i915/dp: Perform 30ms delay after source OUI write 2021-12-01 09:17:08 -05:00
intel_dp_aux.c drm/i915/tc: Add/use helpers to retrieve TypeC port properties 2021-09-29 23:57:37 +03:00
intel_dp_aux.h drm/i915/dp: split out aux functionality to intel_dp_aux.c 2021-01-21 13:27:42 +02:00
intel_dp_aux_backlight.c drm/i915/dp: Perform 30ms delay after source OUI write 2021-12-01 09:17:08 -05:00
intel_dp_aux_backlight.h
intel_dp_hdcp.c drm/i915/hdcp: reuse rx_info for mst stream type1 capability check 2021-09-09 13:10:40 +05:30
intel_dp_hdcp.h drm/i915/hdcp: add intel_dp_hdcp.h and rename init accordingly 2021-04-28 11:07:01 +03:00
intel_dp_link_training.c drm/i915/dg2: update link training for 128b/132b 2021-10-12 12:10:39 +03:00
intel_dp_link_training.h drm/i915: Show LTTPR in the TPS debug print 2021-10-06 22:12:48 +03:00
intel_dp_mst.c drm: Update MST First Link Slot Information Based on Encoding Format 2021-10-25 21:21:07 -04:00
intel_dp_mst.h drm/i915/mst: abstract intel_dp_mst_source_support() 2021-10-08 13:14:25 +03:00
intel_dpio_phy.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
intel_dpio_phy.h drm/i915: De-wrapper bxt_ddi_phy_set_signal_levels() 2021-10-04 12:43:01 +03:00
intel_dpll.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
intel_dpll.h drm/i915/dpll: move dpll modeset asserts to intel_dpll.c 2021-10-01 10:48:59 +03:00
intel_dpll_mgr.c drm/i915/tc: Add/use helpers to retrieve TypeC port properties 2021-09-29 23:57:37 +03:00
intel_dpll_mgr.h drm/i915: Nuke intel_prepare_shared_dpll() 2021-08-25 17:14:31 +03:00
intel_dpt.c drm/i915: Add ww context to intel_dpt_pin, v2. 2021-09-30 12:45:00 +02:00
intel_dpt.h drm/i915/display: split out dpt out of intel_display.c 2021-08-24 20:46:52 +03:00
intel_drrs.c drm/i915/display: Prepare DRRS for frontbuffer rendering drop 2021-09-07 15:39:43 -07:00
intel_drrs.h drm/i915/display: Prepare DRRS for frontbuffer rendering drop 2021-09-07 15:39:43 -07:00
intel_dsb.c drm/i915: Don't include intel_de.h from intel_display_types.h 2021-05-05 21:04:42 +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: Drop pointless fixed_mode checks from dsi code 2021-09-30 11:21:35 +03:00
intel_dsi.h drm/i915/dsi: move dsi pll modeset asserts to vlv_dsi_pll.c 2021-10-01 10:48:59 +03:00
intel_dsi_dcs_backlight.c drm/i915/dsi: Read/write proper brightness value via MIPI DCS command 2021-09-08 19:34:41 +05:30
intel_dsi_dcs_backlight.h
intel_dsi_vbt.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
intel_dvo.c drm/i915: Introduce intel_panel_compute_config() 2021-09-30 11:20:13 +03:00
intel_dvo.h
intel_dvo_dev.h
intel_fb.c drm/i915/fb: Fix rounding error in subsampled plane size calculation 2021-11-09 10:02:44 -05:00
intel_fb.h drm/i915/fb: move user framebuffer stuff to intel_fb.c 2021-08-24 20:47:17 +03:00
intel_fb_pin.c drm/i915/display: move pin/unpin fb/plane code to a new file. 2021-10-12 12:58:40 +03:00
intel_fb_pin.h drm/i915/display: move pin/unpin fb/plane code to a new file. 2021-10-12 12:58:40 +03:00
intel_fbc.c drm/i915/display: Fix glitches when moving cursor with PSR2 selective fetch enabled 2021-09-30 15:04:44 -07:00
intel_fbc.h drm/i915/fbc: Extract intel_fbc_update() 2021-08-20 16:48:51 +03:00
intel_fbdev.c drm/i915/display: move pin/unpin fb/plane code to a new file. 2021-10-12 12:58:40 +03:00
intel_fbdev.h
intel_fdi.c drm/i915: rename intel_sideband.[ch] to intel_sbi.[ch] 2021-10-14 18:05:04 +03:00
intel_fdi.h drm/i915/fdi: use -EAGAIN instead of local special return value 2021-10-01 11:51:17 +03:00
intel_fifo_underrun.c drm/i915/xelpd: Enhanced pipe underrun reporting 2021-05-26 06:46:33 -07:00
intel_fifo_underrun.h
intel_frontbuffer.c drm/i915/display: Renaming DRRS functions to intel_drrs_*() 2021-08-30 12:39:59 -07:00
intel_frontbuffer.h drm/i915/display: Fix glitches when moving cursor with PSR2 selective fetch enabled 2021-09-30 15:04:44 -07:00
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: replace random CNL comments 2021-07-30 10:19:47 -07:00
intel_gmbus.h
intel_hdcp.c drm/i915: split out intel_pcode.[ch] to separate file 2021-10-14 18:04:17 +03:00
intel_hdcp.h drm/i915/hdcp: Pass dig_port to intel_hdcp_init 2021-01-13 08:29:32 +05:30
intel_hdmi.c drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown() 2021-11-09 10:02:41 -05:00
intel_hdmi.h drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown() 2021-11-09 10:02:41 -05:00
intel_hotplug.c drm/i915: Fix oops on platforms w/o hpd support 2021-10-14 23:23:55 +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: Remove references to struct drm_device.pdev 2021-02-02 13:58:42 +02:00
intel_lpe_audio.h
intel_lspcon.c Core Changes: 2021-05-21 08:55:23 +10:00
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/dpll: move dpll modeset asserts to intel_dpll.c 2021-10-01 10:48:59 +03:00
intel_lvds.h
intel_opregion.c drm/i915/backlight: mass rename functions to have intel_backlight_ prefix 2021-08-26 10:40:41 +03:00
intel_opregion.h
intel_overlay.c Merge tag 'drm-intel-gt-next-2021-05-28' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-06-02 14:15:54 +10:00
intel_overlay.h
intel_panel.c drm/i915: Reject user modes that don't match fixed mode's refresh rate 2021-09-30 11:20:40 +03:00
intel_panel.h drm/i915: Introduce intel_panel_compute_config() 2021-09-30 11:20:13 +03:00
intel_pipe_crc.c drm/i915: Don't include intel_de.h from intel_display_types.h 2021-05-05 21:04:42 +03:00
intel_pipe_crc.h drm/i915/crc: move pipe_crc from drm_i915_private to intel_crtc 2020-03-02 12:58:26 +02:00
intel_plane_initial.c drm/i915/display: refactor initial plane config to a separate file 2021-10-12 12:58:33 +03:00
intel_plane_initial.h drm/i915/display: refactor initial plane config to a separate file 2021-10-12 12:58:33 +03:00
intel_pps.c drm/i915/pps: move pps (panel) modeset asserts to intel_pps.c 2021-10-01 10:48:59 +03:00
intel_pps.h drm/i915/pps: move pps (panel) modeset asserts to intel_pps.c 2021-10-01 10:48:59 +03:00
intel_psr.c drm/i915/display/adlp: Allow PSR2 to be enabled 2021-09-30 15:04:45 -07:00
intel_psr.h drm/i915/display: Only keep PSR enabled if there is active planes 2021-09-23 10:06:17 -07:00
intel_qp_tables.c drm/i915/xelpd: Add rc_qp_table for rcparams calculation 2021-05-19 23:59:12 -07:00
intel_qp_tables.h drm/i915/xelpd: Add rc_qp_table for rcparams calculation 2021-05-19 23:59:12 -07:00
intel_quirks.c drm/i915: keep backlight_enable on until turn eDP display off 2021-06-24 11:19:49 +03:00
intel_quirks.h
intel_sdvo.c drm/i915: Introduce intel_panel_compute_config() 2021-09-30 11:20:13 +03:00
intel_sdvo.h drm/i915: significantly reduce the use of <drm/i915_drm.h> 2020-02-27 08:35:09 +02:00
intel_sdvo_regs.h drm/i915/sdvo: Fix SDVO colorimetry bit defines 2020-07-09 16:14:47 +03:00
intel_snps_phy.c drm/i915: Remove pointless extra namespace from dkl/snps buf trans structs 2021-10-14 18:45:35 +03:00
intel_snps_phy.h drm/i915: Nuke useless .set_signal_levels() wrappers 2021-10-04 12:42:55 +03:00
intel_sprite.c drm/i915/plane: add intel_plane_helper_add() helper 2021-07-08 14:05:15 +03:00
intel_sprite.h drm/i915/intel_fb: Pull FB plane functions from intel_sprite.c 2021-03-29 22:54:50 +03:00
intel_tc.c drm/i915/tc: Fix system hang on ADL-P during TypeC PHY disconnect 2021-09-29 23:58:11 +03:00
intel_tc.h drm/i915/tc: Fix TypeC PHY connect/disconnect logic on ADL-P 2021-09-29 23:58:04 +03:00
intel_tv.c drm/i915: s/pipe/transcoder/ when dealing with PIPECONF/TRANSCONF 2021-09-15 18:08:29 +03:00
intel_tv.h
intel_vbt_defs.h drm/i915/bdb: Fix version check 2021-10-05 11:52:48 +03:00
intel_vdsc.c drm/i915: Adjust intel_dsc_power_domain() calling convention 2021-09-15 18:08:29 +03:00
intel_vdsc.h drm/i915: Adjust intel_dsc_power_domain() calling convention 2021-09-15 18:08:29 +03:00
intel_vga.c drm-misc-next for v5.15-rc1: 2021-07-23 11:32:43 +10:00
intel_vga.h
intel_vrr.c drm/i915/xelpd: Add VRR guardband for VRR CTL 2021-05-26 06:46:37 -07:00
intel_vrr.h drm/i915: Remove repeated declaration 2021-03-29 12:39:35 -07:00
skl_scaler.c drm/i915/display: rename CNL references in skl_scaler.c 2021-07-30 10:19:17 -07:00
skl_scaler.h drm/i915: refactor skylake scaler code into new file. 2021-02-08 12:12:41 +02:00
skl_universal_plane.c Merge tag 'drm-intel-gt-next-2021-10-08' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-10-11 18:09:39 +10:00
skl_universal_plane.h drm/i915/intel_fb: Pull FB plane functions from skl_universal_plane.c 2021-03-29 22:54:50 +03:00
vlv_dsi.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00
vlv_dsi_pll.c drm/i915: split out vlv sideband to a separate file 2021-10-14 12:22:55 +03:00