1. 05 1月, 2021 1 次提交
    • J
      drm/i915/display/psr: Use plane damage clips to calculate damaged area · 3fea9f42
      José Roberto de Souza 提交于
      Now using plane damage clips property to calcualte the damaged area.
      Selective fetch only supports one region to be fetched so software
      needs to calculate a bounding box around all damage clips.
      
      Now that we are not complete fetching each plane, there is another
      loop needed as all the plane areas that intersect with the pipe
      damaged area needs to be fetched from memory so the complete blending
      of all planes can happen.
      
      v2:
      - do not shifting new_plane_state->uapi.dst only src is in 16.16 format
      
      v4:
      - setting plane selective fetch area using the whole pipe damage area
      - mark the whole plane area damaged if plane visibility or alpha
      changed
      
      v5:
      - taking in consideration src.y1 in the damage coordinates
      - adding to the pipe damaged area planes that were visible but are
      invisible in the new state
      
      v6:
      - consider old state plane coordinates when visibility changes or it
      moved to calculate damaged area
      - remove from damaged area the portion not in src clip
      
      v7:
      - intersec every damage clip with src to minimize damaged area
      
      v8:
      - adjust pipe_damaged area to 4 lines grouping
      - adjust calculation now that is understood that uapi.src is the
      framebuffer coordinates that plane will start to fetch from
      
      v9:
      - Only add plane dst or src to damaged_area if visible
      - Early skip plane damage calculation if it was not visible in old and
      new state
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
      Reviewed-by: NGwan-gyeong Mun <gwan-gyeong.mun@intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210104205654.238928-2-jose.souza@intel.com
      3fea9f42
  2. 02 12月, 2020 1 次提交
  3. 05 11月, 2020 1 次提交
  4. 29 10月, 2020 1 次提交
    • I
      drm/i915: Fix encoder lookup during PSR atomic check · 00e5deb5
      Imre Deak 提交于
      The atomic check hooks must look up the encoder to be used with a
      connector from the connector's atomic state, and not assume that it's
      the connector's current attached encoder. The latter one can change
      under the atomic check func, or can be unset yet as in the case of MST
      connectors.
      
      This fixes
      [    7.940719] Oops: 0000 [#1] SMP NOPTI
      [    7.944407] CPU: 2 PID: 143 Comm: kworker/2:2 Not tainted 5.6.0-1023-oem #23-Ubuntu
      [    7.952102] Hardware name: Dell Inc. Latitude 7320/, BIOS 88.87.11 09/07/2020
      [    7.959278] Workqueue: events output_poll_execute [drm_kms_helper]
      [    7.965511] RIP: 0010:intel_psr_atomic_check+0x37/0xa0 [i915]
      [    7.971327] Code: 80 2d 06 00 00 20 74 42 80 b8 34 71 00 00 00 74 39 48 8b 72 08 48 85 f6 74 30 80 b8 f8 71 00 00 00 74 27 4c 8b 87 80 04 00 00 <41> 8b 78 78 83 ff 08 77 19 31 c9 83 ff 05 77 19 48 81 c1 20 01 00
      [    7.977541] input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input5
      [    7.990154] RSP: 0018:ffffb864c073fac8 EFLAGS: 00010202
      [    7.990155] RAX: ffff8c5d55ce0000 RBX: ffff8c5d54519000 RCX: 0000000000000000
      [    7.990155] RDX: ffff8c5d55cb30c0 RSI: ffff8c5d89a0c800 RDI: ffff8c5d55fcf800
      [    7.990156] RBP: ffffb864c073fac8 R08: 0000000000000000 R09: ffff8c5d55d9f3a0
      [    7.990156] R10: ffff8c5d55cb30c0 R11: 0000000000000009 R12: ffff8c5d55fcf800
      [    7.990156] R13: ffff8c5d55cb30c0 R14: ffff8c5d56989cc0 R15: ffff8c5d56989cc0
      [    7.990158] FS:  0000000000000000(0000) GS:ffff8c5d8e480000(0000) knlGS:0000000000000000
      [    8.047193] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [    8.052970] CR2: 0000000000000078 CR3: 0000000856500005 CR4: 0000000000760ee0
      [    8.060137] PKRU: 55555554
      [    8.062867] Call Trace:
      [    8.065361]  intel_digital_connector_atomic_check+0x53/0x130 [i915]
      [    8.071703]  intel_dp_mst_atomic_check+0x5b/0x200 [i915]
      [    8.077074]  drm_atomic_helper_check_modeset+0x1db/0x790 [drm_kms_helper]
      [    8.083942]  intel_atomic_check+0x92/0xc50 [i915]
      [    8.088705]  ? drm_plane_check_pixel_format+0x4f/0xb0 [drm]
      [    8.094345]  ? drm_atomic_plane_check+0x7a/0x3a0 [drm]
      [    8.099548]  drm_atomic_check_only+0x2b1/0x450 [drm]
      [    8.104573]  drm_atomic_commit+0x18/0x50 [drm]
      [    8.109070]  drm_client_modeset_commit_atomic+0x1c9/0x200 [drm]
      [    8.115056]  drm_client_modeset_commit_force+0x55/0x160 [drm]
      [    8.120866]  drm_fb_helper_restore_fbdev_mode_unlocked+0x54/0xb0 [drm_kms_helper]
      [    8.128415]  drm_fb_helper_set_par+0x34/0x50 [drm_kms_helper]
      [    8.134225]  drm_fb_helper_hotplug_event.part.0+0xb4/0xe0 [drm_kms_helper]
      [    8.141150]  drm_fb_helper_hotplug_event+0x1c/0x30 [drm_kms_helper]
      [    8.147481]  intel_fbdev_output_poll_changed+0x6f/0xa0 [i915]
      [    8.153287]  drm_kms_helper_hotplug_event+0x2c/0x40 [drm_kms_helper]
      [    8.159709]  output_poll_execute+0x1aa/0x1c0 [drm_kms_helper]
      [    8.165506]  process_one_work+0x1e8/0x3b0
      [    8.169561]  worker_thread+0x4d/0x400
      [    8.173249]  kthread+0x104/0x140
      [    8.176515]  ? process_one_work+0x3b0/0x3b0
      [    8.180726]  ? kthread_park+0x90/0x90
      [    8.184416]  ret_from_fork+0x1f/0x40
      
      Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2361
      References: https://gitlab.freedesktop.org/drm/intel/-/issues/2486Reported-by: NWilliam Tseng <william.tseng@intel.com>
      Reported-by: NCooper Chiou <cooper.chiou@intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NAnshuman Gupta <anshuman.gupta@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201027160928.3665377-1-imre.deak@intel.com
      00e5deb5
  5. 24 10月, 2020 1 次提交
  6. 10 10月, 2020 3 次提交
  7. 29 8月, 2020 1 次提交
    • J
      drm/i915/tgl: Fix stepping WA matching · c33298cb
      José Roberto de Souza 提交于
      TGL made stepping a litte mess, workarounds refer to the stepping of
      the IP(GT or Display) not of the GPU stepping so it would already
      require the same solution as used in commit 96c5a15f
      ("drm/i915/kbl: Fix revision ID checks").
      But to make things even more messy it have a different IP stepping
      mapping between SKUs and the same stepping revision of GT do not match
      the same HW between TGL U/Y and regular TGL.
      
      So it was required to have 2 different macros to check GT WAs while
      for Display we are able to use just one macro that uses the right
      revids table.
      
      All TGL workarounds checked and updated accordingly.
      
      v2:
      - removed TODO to check if WA 14010919138 applies to regular TGL.
      - fixed display stepping in regular TGL (Anusha)
      
      BSpec: 52890
      BSpec: 55378
      BSpec: 44455
      Reviewed-by: NAnusha Srivatsa <anusha.srivtsa@intel.com>
      Cc: Anusha Srivatsa <anusha.srivatsa@intel.com>
      Cc: Penne Lee <penne.y.lee@intel.com>
      Cc: Guangyao Bai <guangyao.bai@intel.com>
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200827233943.400946-1-jose.souza@intel.com
      c33298cb
  8. 18 8月, 2020 2 次提交
  9. 03 7月, 2020 1 次提交
  10. 01 7月, 2020 1 次提交
  11. 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
  12. 08 6月, 2020 1 次提交
  13. 05 6月, 2020 2 次提交
  14. 14 5月, 2020 1 次提交
  15. 26 3月, 2020 1 次提交
    • J
      drm/i915/psr: use struct drm_device based logging · 85f691d3
      Jani Nikula 提交于
      Convert all the DRM_* logging macros to the struct drm_device based
      macros to provide device specific logging.
      
      No functional changes.
      
      Generated using the following semantic patch, originally written by
      Wambui Karuga <wambui.karugax@gmail.com>, with manual fixups on top:
      
      @@
      identifier fn, T;
      @@
      
      fn(...,struct drm_i915_private *T,...) {
      <+...
      (
      -DRM_INFO(
      +drm_info(&T->drm,
      ...)
      |
      -DRM_NOTE(
      +drm_notice(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&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_NOTE(
      +drm_notice(&T->drm,
      ...)
      |
      -DRM_ERROR(
      +drm_err(&T->drm,
      ...)
      |
      -DRM_WARN(
      +drm_warn(&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,
      ...)
      )
      ...+>
      }
      
      Cc: Wambui Karuga <wambui.karugax@gmail.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/cac03aba0a363c8f704035f1f771c73385235a35.1584714939.git.jani.nikula@intel.com
      85f691d3
  16. 04 3月, 2020 1 次提交
    • L
      drm/dp: Introduce EDID-based quirks · 0883ce81
      Lyude Paul 提交于
      The whole point of using OUIs is so that we can recognize certain
      devices and potentially apply quirks for them. Normally this should work
      quite well, but there appears to be quite a number of laptop panels out
      there that will fill the OUI but not the device ID. As such, for devices
      like this I can't imagine it's a very good idea to try relying on OUIs
      for applying quirks. As well, some laptop vendors have confirmed to us
      that their panels have this exact issue.
      
      So, let's introduce the ability to apply DP quirks based on EDID
      identification. We reuse the same quirk bits for OUI-based quirks, so
      that callers can simply check all possible quirks using
      drm_dp_has_quirk().
      Signed-off-by: NLyude Paul <lyude@redhat.com>
      Cc: Jani Nikula <jani.nikula@intel.com>
      Reviewed-by: NAdam Jackson <ajax@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200211183358.157448-2-lyude@redhat.com
      0883ce81
  17. 02 3月, 2020 1 次提交
  18. 25 2月, 2020 1 次提交
    • J
      drm/i915/psr: Force PSR probe only after full initialization · df1a5bfc
      José Roberto de Souza 提交于
      Commit 60c6a14b ("drm/i915/display: Force the state compute phase
      once to enable PSR") was forcing the state compute too earlier
      causing errors because not everything was initialized, so here
      moving to the end of i915_driver_modeset_probe() when the display is
      all initialized.
      
      Also fixing the place where it disarm the force probe as during the
      atomic check phase errors could happen like the ones due locking and
      it would cause PSR to never be enabled if that happens.
      Leaving the disarm to the atomic commit phase, intel_psr_enable() or
      intel_psr_update() will be called even if the current state do not
      allow PSR to be enabled.
      
      v2: Check if intel_dp is null in intel_psr_force_mode_changed_set()
      v3: Check intel_dp before get dev_priv
      v4:
      - renamed intel_psr_force_mode_changed_set() to
      intel_psr_set_force_mode_changed()
      - removed the set parameter from intel_psr_set_force_mode_changed()
      - not calling intel_psr_set_force_mode_changed() from
      intel_psr_enable/update(), directly setting it after the same checks
      that intel_psr_set_force_mode_changed() does
      - moved intel_psr_set_force_mode_changed() arm call to
      i915_driver_modeset_probe() as it is a better for a PSR call, all the
      functions calls happening between the old and the new function call
      will cause issue
      
      Fixes: 60c6a14b ("drm/i915/display: Force the state compute phase once to enable PSR")
      Closes: https://gitlab.freedesktop.org/drm/intel/issues/1151Tested-by: NRoss Zwisler <zwisler@google.com>
      Reported-by: NRoss Zwisler <zwisler@google.com>
      Cc: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Anshuman Gupta <anshuman.gupta@intel.com>
      Reviewed-by: NGwan-gyeong Mun <gwan-gyeong.mun@intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200221212635.11614-1-jose.souza@intel.com
      df1a5bfc
  19. 11 2月, 2020 1 次提交
  20. 10 2月, 2020 1 次提交
  21. 04 2月, 2020 2 次提交
  22. 29 1月, 2020 1 次提交
  23. 28 1月, 2020 1 次提交
  24. 25 1月, 2020 2 次提交
  25. 22 1月, 2020 1 次提交
  26. 17 1月, 2020 1 次提交
  27. 14 1月, 2020 1 次提交
  28. 09 1月, 2020 1 次提交
  29. 03 12月, 2019 4 次提交
  30. 01 11月, 2019 2 次提交