1. 25 6月, 2021 1 次提交
  2. 07 5月, 2021 1 次提交
  3. 06 5月, 2021 1 次提交
  4. 26 4月, 2021 1 次提交
  5. 14 4月, 2021 3 次提交
  6. 08 4月, 2021 1 次提交
  7. 30 3月, 2021 1 次提交
    • I
      drm/i915: Unify the FB and plane state view information into one struct · 61169987
      Imre Deak 提交于
      To allow the simplification of FB/plane view computation in the
      follow-up patches, unify the corresponding state in the
      intel_framebuffer and intel_plane_state structs into a new intel_fb_view
      struct.
      
      This adds some overhead to intel_framebuffer as the rotated view will
      have now space for 4 color planes instead of the required 2 and it'll
      also contain the unused offset for each color_plane info. Imo this is an
      acceptable trade-off to get a simplified way of the remap computation.
      
      Use the new intel_fb_view struct for the FB normal view as well, so (in
      the follow-up patches) we can remove the special casing for normal view
      calculation wrt. the calculation of remapped/rotated views. This also
      adds an overhead to the intel_framebuffer struct, as the gtt remap info
      and per-color plane offset/pitch is not required for the normal view,
      but imo this is an acceptable trade-off as above. The per-color plane
      pitch filed will be used by a follow-up patch, so we can retrieve the
      pitch for each view in the same way.
      
      No functional changes in this patch.
      
      v2:
      - Make the patch have _no functional change_.
        (fix skl_check_nv12_aux_surface() and skl_check_main_surface()).
      - s/i915_color_plane_view::pitch/stride/ (Ville)
      Suggested-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210325214808.2071517-17-imre.deak@intel.com
      61169987
  8. 24 3月, 2021 3 次提交
    • M
      drm/i915/display: Simplify GLK display version tests · 2b5a4562
      Matt Roper 提交于
      GLK has always been a bit of a special case since it reports INTEL_GEN()
      as 9, but has version 10 display IP.  Now we can properly represent the
      display version as 10 and simplify the display generation tests
      throughout the display code.
      
      Aside from manually adding the version to the glk_info structure, the
      rest of this patch is generated with a Coccinelle semantic patch.  Note
      that we also need to switch any code that matches gen10 today but *not*
      GLK to be CNL-specific:
      
              @@ expression dev_priv; @@
              - DISPLAY_VER(dev_priv) > 9
              + DISPLAY_VER(dev_priv) >= 10
      
              @@ expression dev_priv, E; @@
              (
              - DISPLAY_VER(dev_priv) >= 10 && E
              + (DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)) && E
              |
              - DISPLAY_VER(dev_priv) >= 10
              + DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)
              |
              - IS_DISPLAY_RANGE(dev_priv, 10, E)
              + IS_DISPLAY_RANGE(dev_priv, 11, E) || IS_CANNONLAKE(dev_priv)
              )
      
              @@ expression dev_priv, E, E2; @@
              (
              - (IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv))
              + IS_DISPLAY_VER(dev_priv, 10)
              |
              - E || IS_CANNONLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)
              + E || IS_DISPLAY_VER(dev_priv, 10)
              |
              - (IS_GEMINILAKE(dev_priv) || IS_CANNONLAKE(dev_priv))
              + IS_DISPLAY_VER(dev_priv, 10)
              |
              - IS_GEMINILAKE(dev_priv) || E || IS_CANNONLAKE(dev_priv)
              + E || IS_DISPLAY_VER(dev_priv, 10)
              |
              - E || IS_GEMINILAKE(dev_priv) || E2 || IS_CANNONLAKE(dev_priv)
              + E || E2 || IS_DISPLAY_VER(dev_priv, 10)
              |
              - (IS_DISPLAY_VER(dev_priv, 10) || IS_GEMINILAKE(dev_priv))
              + IS_DISPLAY_VER(dev_priv, 10)
              |
              - (IS_GEMINILAKE(dev_priv) || IS_DISPLAY_VER(dev_priv, 10))
              + IS_DISPLAY_VER(dev_priv, 10)
              )
      
              @@ expression dev_priv; @@
              - (IS_DISPLAY_VER(dev_priv, 9) && !IS_GEMINILAKE(dev_priv))
              + IS_DISPLAY_VER(dev_priv, 9)
      
              @@ expression dev_priv; @@
              (
              - !(DISPLAY_VER(dev_priv) >= 11 || IS_DISPLAY_VER(dev_priv, 10))
              + DISPLAY_VER(dev_priv) < 10
              |
              - (DISPLAY_VER(dev_priv) >= 11 || IS_DISPLAY_VER(dev_priv, 10))
              + DISPLAY_VER(dev_priv) >= 10
              )
      
              @@ expression dev_priv, E; @@
              - E || DISPLAY_VER(dev_priv) >= 11 || IS_DISPLAY_VER(dev_priv, 10)
              + E || DISPLAY_VER(dev_priv) >= 10
      
              @@ expression dev_priv, E; @@
              - (IS_DISPLAY_RANGE(dev_priv, 11, E) || IS_DISPLAY_VER(dev_priv, 10))
              + IS_DISPLAY_RANGE(dev_priv, 10, E)
      
              @@ expression dev_priv; @@
              (
              - DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv) || IS_GEN9_LP(dev_priv)
              + DISPLAY_VER(dev_priv) >= 10 || IS_GEN9_LP(dev_priv)
              |
              - IS_GEN9_LP(dev_priv) || DISPLAY_VER(dev_priv) >= 11 || IS_CANNONLAKE(dev_priv)
              + IS_GEN9_LP(dev_priv) || DISPLAY_VER(dev_priv) >= 10
              )
      
              @@ expression dev_priv, E; @@
              - !(DISPLAY_VER(dev_priv) >= E)
              + DISPLAY_VER(dev_priv) < E
      
      v2:
       - Convert gen10 conditions that don't include GLK into CNL conditions.
         (Ville)
      
      v3:
       - Rework coccinelle rules so that "ver>=10" turns into "ver>=11||is_cnl." (Ville)
      
      v3.1:
       - Manually re-add the ".display.version = 10" to glk_info after
         regenerating patch via Coccinelle.
      
      v4:
       - Also apply cocci rules to intel_pm.c and i915_irq.c!  (CI)
      
      Cc: Ville Syrjälä <ville.syrjala@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210322233840.4056851-1-matthew.d.roper@intel.com
      2b5a4562
    • M
      drm/i915/display: Eliminate most usage of INTEL_GEN() · 005e9537
      Matt Roper 提交于
      Use Coccinelle to convert most of the usage of INTEL_GEN() and IS_GEN()
      in the display code to use DISPLAY_VER() comparisons instead.  The
      following semantic patch was used:
      
              @@ expression dev_priv, E; @@
              - INTEL_GEN(dev_priv) == E
              + IS_DISPLAY_VER(dev_priv, E)
      
              @@ expression dev_priv; @@
              - INTEL_GEN(dev_priv)
              + DISPLAY_VER(dev_priv)
      
              @@ expression dev_priv; expression E; @@
              - IS_GEN(dev_priv, E)
              + IS_DISPLAY_VER(dev_priv, E)
      
              @@
              expression dev_priv;
              expression from, until;
              @@
              - IS_GEN_RANGE(dev_priv, from, until)
              + IS_DISPLAY_RANGE(dev_priv, from, until)
      
      There are still some display-related uses of INTEL_GEN() in intel_pm.c
      (watermark code) and i915_irq.c.  Those will be updated separately.
      
      v2:
       - Use new IS_DISPLAY_RANGE and IS_DISPLAY_VER helpers.  (Jani)
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NLucas De Marchi <lucas.demarchi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210320044245.3920043-4-matthew.d.roper@intel.com
      005e9537
    • M
      drm/i915/display: Convert gen5/gen6 tests to IS_IRONLAKE/IS_SANDYBRIDGE · d47d29a6
      Matt Roper 提交于
      ILK is the only platform that we consider "gen5" and SNB is the only
      platform we consider "gen6."  Add an IS_SANDYBRIDGE() macro and then
      replace numeric platform tests for these two generations with direct
      platform tests with the following Coccinelle semantic patch:
      
              @@ expression dev_priv; @@
              - IS_GEN(dev_priv, 5)
              + IS_IRONLAKE(dev_priv)
      
              @@ expression dev_priv; @@
              - IS_GEN(dev_priv, 6)
              + IS_SANDYBRIDGE(dev_priv)
      
              @@ expression dev_priv; @@
              - IS_GEN_RANGE(dev_priv, 5, 6)
              + IS_IRONLAKE(dev_priv) || IS_SANDYBRIDGE(dev_priv)
      
      This will simplify our upcoming patches which eliminate INTEL_GEN()
      usage in the display code.
      
      v2:
       - Reverse ilk/snb order for IS_GEN_RANGE conversion.  (Ville)
       - Rebase + regenerate from semantic patch
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210320044245.3920043-2-matthew.d.roper@intel.com
      d47d29a6
  9. 14 1月, 2021 1 次提交
  10. 02 12月, 2020 2 次提交
  11. 20 10月, 2020 1 次提交
  12. 18 8月, 2020 2 次提交
  13. 17 7月, 2020 1 次提交
  14. 15 7月, 2020 2 次提交
  15. 09 7月, 2020 1 次提交
  16. 07 7月, 2020 1 次提交
  17. 03 7月, 2020 2 次提交
  18. 01 7月, 2020 5 次提交
  19. 23 6月, 2020 1 次提交
    • J
      drm/i915/params: switch to device specific parameters · 8a25c4be
      Jani Nikula 提交于
      Start using device specific parameters instead of module parameters for
      most things. The module parameters become the immutable initial values
      for i915 parameters. The device specific parameters in i915->params
      start life as a copy of i915_modparams. Any later changes are only
      reflected in the debugfs.
      
      The stragglers are:
      
      * i915.force_probe and i915.modeset. Needed before dev_priv is
        available. This is fine because the parameters are read-only and never
        modified.
      
      * i915.verbose_state_checks. Passing dev_priv to I915_STATE_WARN and
        I915_STATE_WARN_ON would result in massive and ugly churn. This is
        handled by not exposing the parameter via debugfs, and leaving the
        parameter writable in sysfs. This may be fixed up in follow-up work.
      
      * i915.inject_probe_failure. Only makes sense in terms of the module,
        not the device. This is handled by not exposing the parameter via
        debugfs.
      
      v2: Fix uc i915 lookup code (Michał Winiarski)
      
      Cc: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
      Cc: Venkata Sandeep Dhanalakota <venkata.s.dhanalakota@intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Acked-by: NMichał Winiarski <michal.winiarski@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20200618150402.14022-1-jani.nikula@intel.com
      8a25c4be
  20. 05 5月, 2020 2 次提交
  21. 04 5月, 2020 1 次提交
  22. 21 4月, 2020 1 次提交
  23. 25 3月, 2020 1 次提交
    • J
      drm/i915/display/fbc: Make fences a nice-to-have for GEN9+ · 691f7ba5
      José Roberto de Souza 提交于
      dGFX has local memory so it does not have aperture or support
      CPU fences but even for iGFX it have a small number of fences.
      
      As replacement for fences to track frontbuffer modifications by CPU
      we have a software tracking that is already in used by FBC and PSR.
      PSR don't support fences so it shows that this tracking is reliable.
      
      So lets make fences a nice-to-have to activate FBC for GEN9+, this
      will allow us to enable FBC for dGFXs and iGFXs even when there is no
      available fence.
      
      We do not set fences to rotated planes but FBC only have restrictions
      against 16bpp, so adding it here.
      
      Also adding a new check for the tiling format, fences are only set
      to X and Y tiled planes but again FBC don't have any restrictions
      against tiling so adding linear as supported as well, other formats
      should be added after tested but IGT only supports drawing in thse
      3 formats.
      
      intel_fbc_hw_tracking_covers_screen() maybe can also have the same
      treatment as fences but BSpec is not clear if the size limitation is
      for hardware tracking or general use of FBC and I don't have a 5K
      display to test it, so keeping as is for safety.
      
      v2:
      - Added tiling and pixel format rotation checks
      - Changed the GEN version not requiring fences to 11 from 9, DDX
      needs some changes but it don't have support for GEN11+
      
      v3:
      - Changed back to GEN9+
      - Moved GEN test to inside of tiling_is_valid()
      
      v4:
      - moved rotation check to its own functions
      
      v5:
      - renamed rotations_is_valid to rotation_is_valid
      - moved pre-g4x rotation check to rotation_is_valid()
      
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200319211535.114625-1-jose.souza@intel.com
      691f7ba5
  24. 19 3月, 2020 1 次提交
    • W
      drm/i915/fbc: convert to drm_device based logging macros. · 97ed48b5
      Wambui Karuga 提交于
      This replaces the uses of the printk based drm logging macros with the
      struct drm_device based logging macros in i915/display/intel_fbc.c.
      This transformation was done using the following coccinelle semantic
      patch that matches based on the existence of a drm_i915_private device
      pointer:
      @@
      identifier fn, T;
      @@
      
      fn(...,struct drm_i915_private *T,...) {
      <+...
      (
      -DRM_INFO(
      +drm_info(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&T->drm,
      ...)
      |
      -DRM_DEBUG(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_DRIVER(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_KMS(
      +drm_dbg_kms(&T->drm,
      ...)
      |
      -DRM_DEBUG_ATOMIC(
      +drm_dbg_atomic(&T->drm,
      ...)
      )
      ...+>
      }
      
      @@
      identifier fn, T;
      @@
      
      fn(...) {
      ...
      struct drm_i915_private *T = ...;
      <+...
      (
      -DRM_INFO(
      +drm_info(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&T->drm,
      ...)
      |
      -DRM_DEBUG(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_KMS(
      +drm_dbg_kms(&T->drm,
      ...)
      |
      -DRM_DEBUG_DRIVER(
      +drm_dbg(&T->drm,
      ...)
      |
      -DRM_DEBUG_ATOMIC(
      +drm_dbg_atomic(&T->drm,
      ...)
      )
      ...+>
      }
      
      New checkpatch warnings were addressed manually.
      
      v2 by Jani:
      - also convert pr_info_once to drm based logging
      Signed-off-by: NWambui Karuga <wambui.karugax@gmail.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Reviewed-by: NWambui Karuga <wambui.karugax@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/32a92f1d4e4d01131605b17bec831517e39c5902.1583766715.git.jani.nikula@intel.com
      97ed48b5
  25. 11 3月, 2020 2 次提交
    • R
      drm/i915/display: Do not write in removed FBC fence registers · 765e7cd9
      Radhakrishna Sripada 提交于
      Platforms without fences don't have FBC host tracking and those
      registers are marked as reserved in those platforms.
      
      v2: checking num_fences to write to FBC fence registers (Ville)
      
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NRadhakrishna Sripada <radhakrishna.sripada@intel.com>
      Signed-off-by: NLucas De Marchi <lucas.demarchi@intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200306185833.53984-2-jose.souza@intel.com
      765e7cd9
    • J
      drm/i915/display: Deactive FBC in fastsets when disabled by parameter · dff8ba1c
      José Roberto de Souza 提交于
      Most of the kms_frontbuffer_tracking tests disables the feature being
      tested, draw, get the CRC then enable the feature, draw again, get the
      CRC and check if it matches.
      Some times it is able to do that with a fastset, so
      intel_pre_plane_update() is executed but intel_fbc_can_flip_nuke() was
      not checking if FBC is now enabled in this CRTC leaving FBC active and
      causing the warning bellow in __intel_fbc_disable()
      
      [IGT] kms_frontbuffer_tracking: starting subtest fbc-1p-pri-indfb-multidraw
      Setting dangerous option enable_fbc - tainting kernel
      i915 0000:00:02.0: [drm:i915_edp_psr_debug_set [i915]] Setting PSR debug to f
      i915 0000:00:02.0: [drm:intel_psr_debug_set [i915]] Invalid debug mask f
      i915 0000:00:02.0: [drm:i915_edp_psr_debug_set [i915]] Setting PSR debug to 1
      i915 0000:00:02.0: [drm:intel_atomic_check [i915]] [CONNECTOR:215:eDP-1] Limiting display bpp to 24 instead of EDID bpp 24, requested bpp 36, max platform bpp 36
      [drm:intel_dp_compute_config [i915]] DP link computation with max lane count 2 max rate 270000 max bpp 24 pixel clock 138120KHz
      [drm:intel_dp_compute_config [i915]] Force DSC en = 0
      [drm:intel_dp_compute_config [i915]] DP lane count 2 clock 270000 bpp 24
      [drm:intel_dp_compute_config [i915]] DP link rate required 414360 available 540000
      i915 0000:00:02.0: [drm:intel_atomic_check [i915]] hw max bpp: 24, pipe bpp: 24, dithering: 0
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] [CRTC:91:pipe A] enable: yes [fastset]
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] active: yes, output_types: EDP (0x100), output format: RGB
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] cpu_transcoder: EDP, pipe bpp: 24, dithering: 0
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] dp m_n: lanes: 2; gmch_m: 6436858, gmch_n: 8388608, link_m: 268202, link_n: 524288, tu: 64
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] audio: 0, infoframes: 0, infoframes enabled: 0x0
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] requested mode:
      [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60 138120 1920 1968 2018 2052 1080 1084 1086 1122 0x48 0xa
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] adjusted mode:
      [drm:drm_mode_debug_printmodeline] Modeline "1920x1080": 60 138120 1920 1968 2018 2052 1080 1084 1086 1122 0x48 0xa
      [drm:intel_dump_pipe_config [i915]] crtc timings: 138120 1920 1968 2018 2052 1080 1084 1086 1122, type: 0x48 flags: 0xa
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] port clock: 270000, pipe src size: 1920x1080, pixel rate 138120
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] linetime: 119, ips linetime: 0
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] num_scalers: 2, scaler_users: 0x0, scaler_id: -1
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] pch pfit: pos: 0x00000000, size: 0x00000000, disabled, force thru: no
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] ips: 0, double wide: 0
      [drm:icl_dump_hw_state [i915]] dpll_hw_state: cfgcr0: 0x1c001a5, cfgcr1: 0x8b, mg_refclkin_ctl: 0x0, hg_clktop2_coreclkctl1: 0x0, mg_clktop2_hsclkctl: 0x0, mg_pll_div0: 0x0, mg_pll_div2: 0x0, mg_pll_lf: 0x0, mg_pll_frac_lock: 0x0, mg_pll_ssc: 0x0, mg_pll_bias: 0x0, mg_pll_tdc_coldst_bias: 0x0
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] csc_mode: 0x0 gamma_mode: 0x0 gamma_enable: 0 csc_enable: 0
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] MST master transcoder: <invalid>
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] [PLANE:31:plane 1A] fb: [FB:262] 1920x1080 format = XR24 little-endian (0x34325258), visible: yes
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] 	rotation: 0x1, scaler: -1
      i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] 	src: 1920.000000x1080.000000+0.000000+0.000000 dst: 1920x1080+0+0
      i915 0000:00:02.0: [drm:intel_psr_disable_locked [i915]] Disabling PSR1
      i915 0000:00:02.0: [drm:intel_ddi_update_pipe [i915]] Panel doesn't support DRRS
      ------------[ cut here ]------------
      i915 0000:00:02.0: drm_WARN_ON(fbc->active)
      WARNING: CPU: 4 PID: 1175 at drivers/gpu/drm/i915/display/intel_fbc.c:973 __intel_fbc_disable+0xa5/0x130 [i915]
      Modules linked in: snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic i915 mei_hdcp x86_pkg_temp_thermal coretemp crct10dif_pclmul snd_hda_intel crc32_pclmul snd_intel_dspcfg snd_hda_codec ghash_clmulni_intel snd_hwdep snd_hda_core cdc_ether e1000e usbnet mii snd_pcm ptp mei_me pps_core mei thunderbolt intel_lpss_pci prime_numbers
      CPU: 4 PID: 1175 Comm: kms_frontbuffer Tainted: G     U            5.5.0-CI-Trybot_5651+ #1
      Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP TLC, BIOS ICLSFWR1.R00.3234.A01.1906141750 06/14/2019
      RIP: 0010:__intel_fbc_disable+0xa5/0x130 [i915]
      Code: 8b 67 50 4d 85 e4 0f 84 8f 00 00 00 e8 44 33 30 e1 48 c7 c1 72 f6 4c a0 4c 89 e2 48 89 c6 48 c7 c7 42 f6 4c a0 e8 0b 9d ce e0 <0f> 0b eb 90 48 8b 7b 18 4c 8b 67 50 4d 85 e4 74 6d e8 15 33 30 e1
      RSP: 0018:ffffc90000613b68 EFLAGS: 00010282
      RAX: 0000000000000000 RBX: ffff8884799d0000 RCX: 0000000000000006
      RDX: 0000000000001905 RSI: ffff888495dac970 RDI: ffffffff823731a1
      RBP: ffff88847c05d000 R08: ffff888495dac970 R09: 0000000000000000
      R10: ffffc90000613b88 R11: 0000000000000000 R12: ffff88849bba7e40
      R13: ffff8884799d0000 R14: ffff888498564000 R15: 0000000000000000
      FS:  00007f8157f08300(0000) GS:ffff8884a0000000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007ffdbfea2eb8 CR3: 000000049d1cc001 CR4: 0000000000760ee0
      PKRU: 55555554
      Call Trace:
       intel_fbc_disable+0x4a/0x50 [i915]
       intel_update_crtc+0x12c/0x1d0 [i915]
       skl_commit_modeset_enables+0x14d/0x600 [i915]
       intel_atomic_commit_tail+0x30d/0x1480 [i915]
       ? queue_work_on+0x31/0x70
       ? intel_atomic_commit_ready+0x3f/0x48 [i915]
       ? __i915_sw_fence_complete+0x1a0/0x250 [i915]
       intel_atomic_commit+0x312/0x390 [i915]
       intel_psr_fastset_force+0x119/0x150 [i915]
       i915_edp_psr_debug_set+0x53/0x70 [i915]
       simple_attr_write+0xb0/0xd0
       full_proxy_write+0x51/0x80
       vfs_write+0xb9/0x1d0
       ksys_write+0x9f/0xe0
       do_syscall_64+0x4f/0x220
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x7f8157240281
      Code: c3 0f 1f 84 00 00 00 00 00 48 8b 05 59 8d 20 00 c3 0f 1f 84 00 00 00 00 00 8b 05 8a d1 20 00 85 c0 75 16 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 41 54 55 49 89 d4 53
      RSP: 002b:00007ffdbfea59d8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f8157240281
      RDX: 0000000000000003 RSI: 00007f8157901152 RDI: 0000000000000008
      RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000246 R12: 00007f8157901152
      R13: 0000000000000008 R14: 00005589d298dce0 R15: 0000000000000000
      irq event stamp: 55208
      hardirqs last  enabled at (55207): [<ffffffff8112f3fc>] vprintk_emit+0xcc/0x330
      hardirqs last disabled at (55208): [<ffffffff81001ca0>] trace_hardirqs_off_thunk+0x1a/0x1c
      softirqs last  enabled at (54926): [<ffffffff81e00385>] __do_softirq+0x385/0x47f
      softirqs last disabled at (54915): [<ffffffff810ba15a>] irq_exit+0xba/0xc0
      ---[ end trace afa50c52e5a512bb ]---
      [drm:__intel_fbc_disable [i915]] Disabling FBC on pipe A
      i915 0000:00:02.0: [drm:verify_connector_state [i915]] [CONNECTOR:215:eDP-1]
      i915 0000:00:02.0: [drm:intel_atomic_commit_tail [i915]] [CRTC:91:pipe A]
      [drm:intel_ddi_get_config [i915]] [ENCODER:214:DDI A] Fec status: 0
      i915 0000:00:02.0: [drm:verify_single_dpll_state.isra.150 [i915]] DPLL 0
      
      v2:
      using intel_fbc_can_enable() instead of crtc_state->enable_fbc (Ville)
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200306185833.53984-1-jose.souza@intel.com
      dff8ba1c
  26. 06 3月, 2020 1 次提交