1. 15 7月, 2021 5 次提交
  2. 07 7月, 2021 1 次提交
    • T
      drm/i915: Use the correct IRQ during resume · 320ad343
      Thomas Zimmermann 提交于
      The code in xcs_resume() probably didn't work as intended. It uses
      struct drm_device.irq, which is allocated to 0, but never initialized
      by i915 to the device's interrupt number.
      
      Change all calls to synchronize_hardirq() to intel_synchronize_irq(),
      which uses the correct interrupt. _hardirq() functions are not needed
      in this context.
      
      v5:
      	* go back to _hardirq() after PCI probe reported wrong
      	  context; add rsp comment
      v4:
      	* switch everything to intel_synchronize_irq() (Daniel)
      v3:
      	* also use intel_synchronize_hardirq() at another callsite
      v2:
      	* wrap irq code in intel_synchronize_hardirq() (Ville)
      Signed-off-by: NThomas Zimmermann <tzimmermann@suse.de>
      Fixes: 536f77b1 ("drm/i915/gt: Call stop_ring() from ring resume, again")
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210701173618.10718-2-tzimmermann@suse.de
      (cherry picked from commit 27e4b467)
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      320ad343
  3. 15 6月, 2021 1 次提交
    • C
      drm/i915/selftests: Reorder tasklet_disable vs local_bh_disable · 2328e1b3
      Chris Wilson 提交于
      Due to a change in requirements that disallows tasklet_disable() being
      called from atomic context, rearrange the selftest to avoid doing so.
      
      <3> [324.942939] BUG: sleeping function called from invalid context at kernel/softirq.c:888
      <3> [324.942952] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 5601, name: i915_selftest
      <4> [324.942960] 1 lock held by i915_selftest/5601:
      <4> [324.942963]  #0: ffff888101d19240 (&dev->mutex){....}-{3:3}, at: device_driver_attach+0x18/0x50
      <3> [324.942987] Preemption disabled at:
      <3> [324.942990] [<ffffffffa026fbd2>] live_hold_reset.part.65+0xc2/0x2f0 [i915]
      <4> [324.943255] CPU: 0 PID: 5601 Comm: i915_selftest Tainted: G     U            5.13.0-rc5-CI-CI_DRM_10197+ #1
      <4> [324.943259] Hardware name: Intel Corp. Geminilake/GLK RVP2 LP4SD (07), BIOS GELKRVPA.X64.0062.B30.1708222146 08/22/2017
      <4> [324.943263] Call Trace:
      <4> [324.943267]  dump_stack+0x7f/0xad
      <4> [324.943276]  ___might_sleep.cold.123+0xf2/0x106
      <4> [324.943286]  tasklet_unlock_wait+0x2e/0xb0
      <4> [324.943291]  ? ktime_get_raw+0x81/0x120
      <4> [324.943305]  live_hold_reset.part.65+0x1ab/0x2f0 [i915]
      <4> [324.943500]  __i915_subtests.cold.7+0x42/0x92 [i915]
      <4> [324.943723]  ? __i915_live_teardown+0x50/0x50 [i915]
      <4> [324.943922]  ? __intel_gt_live_setup+0x30/0x30 [i915]
      
      Fixes: da044747 ("tasklets: Replace spin wait in tasklet_unlock_wait()")
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NThomas Hellström <thomas.hellstrom@linux.intel.com>
      Signed-off-by: NMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210611060838.647973-1-thomas.hellstrom@linux.intel.com
      (cherry picked from commit 35c6367f)
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      2328e1b3
  4. 06 6月, 2021 2 次提交
  5. 04 6月, 2021 18 次提交
  6. 02 6月, 2021 1 次提交
  7. 01 6月, 2021 1 次提交
  8. 28 5月, 2021 1 次提交
    • A
      drm/i915: Add Wa_14010733141 · 5b26d57f
      Aditya Swarup 提交于
      The WA requires the following procedure for VDBox SFC reset:
      
      If (MFX-SFC usage is 1) {
      	1.Issue a MFX-SFC forced lock
      	2.Wait for MFX-SFC forced lock ack
      	3.Check the MFX-SFC usage bit
      	If (MFX-SFC usage bit is 1)
      		Reset VDBOX and SFC
      	else
      		Reset VDBOX
      	Release the force lock MFX-SFC
      }
      else if(HCP+SFC usage is 1) {
      	1.Issue a VE-SFC forced lock
      	2.Wait for SFC forced lock ack
      	3.Check the VE-SFC usage bit
      	If (VE-SFC usage bit is 1)
      		Reset VDBOX
      	else
      		Reset VDBOX and SFC
      	Release the force lock VE-SFC.
      }
      else
      	Reset VDBOX
      
      - Restructure: the changes to the original code flow should stay
        relatively minimal; we only need to do an extra HCP check after the
        usual VD-MFX check and, if true, switch the register/bit we're
        performing the lock on.(MattR)
      
      v2:
      - Assign unlock mask using paired_engine->mask instead of using
        BIT(paired_vecs->id). (Daniele)
      
      Bspec: 52890, 53509
      
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Signed-off-by: NAditya Swarup <aditya.swarup@intel.com>
      Co-developed-by: NMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210526094852.286424-2-aditya.swarup@intel.com
      5b26d57f
  9. 25 5月, 2021 4 次提交
  10. 20 5月, 2021 2 次提交
  11. 19 5月, 2021 1 次提交
  12. 18 5月, 2021 1 次提交
  13. 13 5月, 2021 2 次提交