• Rodrigo Vivi's avatar
    drm/i915: VLV/CHV PSR: Increase wait delay time before active PSR. · 30886c5a
    Rodrigo Vivi authored
    Since active function on VLV immediately activate PSR let's give more
    time for idleness. Different from core platforms where we have idle_frames
    count.
    
    Also kms_psr_sink_crc now is automated and always get this:
    
    [drm:intel_enable_pipe] enabling pipe A
    [drm:intel_edp_backlight_on]
    [drm:intel_panel_enable_backlight] pipe
    [drm:intel_panel_enable_backlight] pipe A
    [drm:intel_panel_actually_set_backlight] set backlight PWM = 7812
    
    PSR gets enabled somewhere here after backlight.
    
    [drm:intel_get_hpd_pins] hotplug event received, stat 0x00000000, dig 0x0
    [drm:vlv_pipe_set_fifo_size] Pipe A FIFO split 511 / 511 / 511
    [drm:vlv_update_wm] Setting FIFO watermarks - A: plane=391, cursor=63, sp
    
    PSR gets flushed around here by intel_atomic_commit
    
    [drm:vlv_pipe_set_fifo_size] Pipe A FIFO split 511 / 511 / 511
    [drm:vlv_update_wm] Setting FIFO watermarks - A: plane=391, cursor=63, sp
    [drm:intel_set_memory_cxsr] memory self-refresh is enabled
    [drm:intel_connector_check_state] [CONNECTOR:39:eDP-1]
    [drm:check_encoder_state] [ENCODER:30:DAC-30]
    [drm:check_encoder_state] [ENCODER:31:TMDS-31]
    [drm:check_encoder_state] [ENCODER:36:TMDS-36]
    [drm:check_encoder_state] [ENCODER:38:TMDS-38]
    [drm:check_crtc_state] [CRTC:21]
    [drm:check_crtc_state] [CRTC:26]
    [drm:intel_psr_activate [i915]] *ERROR* PSR Active
    [drm:intel_get_hpd_pins] hotplug event received, stat 0x00000000, dig 0x
    [drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* pipe A underrun
    [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO
    Underrun.
    
    It is true that in a product we won't keep disabling and enabling planes so
    frequently, but for safeness let's stay conservative.
    
    It is also true that 500ms is an etternity. But PSR is anyway a power saving
    feature for idle scenario. So if it is idle feature stays on and 500ms to get
    it reanabled is not that insane.
    
    v2: Rebase over intel_psr.c and fix typo.
    v3: Revival: Manual tests indicated that this is needed. With a short delay
        there is a huge risk of getting blank screens when planes are being enabled.
    v4: Revival 2 with reasonable delay. 1/2 sec instead of 5. VBT is 10 sec but
        actually time for link training what we aren't doing, but with only 100 sec
        in some cases kms_psr_sink_crc manual was showing blank screen,
        so let's use this for now. Also changed comment by a FIXME.
    v5: Rebase after a long time, remove FIXME and update comment above.
    v6: msecs_to_jiffies is already on delay. remove duplication.
    v7: use msecs_to_jiffies on schedule_delayed_work call.
    
    Reviewed-by: Durgadoss R <durgadoss.r@intel.com> (v4)
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    30886c5a
intel_psr.c 23.7 KB