1. 18 6月, 2014 7 次提交
    • O
      drm/i915/bdw: Ack interrupts before handling them (GEN8) · 38cc46d7
      Oscar Mateo 提交于
      Otherwise, we might receive a new interrupt before we have time to
      ack the first one, eventually missing it.
      
      The right order should be:
      
      1 - Disable Master Interrupt Control.
      2 - Find the category of interrupt that is pending.
      3 - Find the source(s) of the interrupt and clear the Interrupt Identity bits (IIR)
      4 - Process the interrupt(s) that had bits set in the IIRs.
      5 - Re-enable Master Interrupt Control.
      
      Without an atomic XCHG operation with mmio space, the above merely reduces the window
      in which we can miss an interrupt (especially when you consider how heavyweight the
      I915_READ/I915_WRITE operations are).
      
      Spotted by Bob Beckett <robert.beckett@intel.com>.
      
      v2: Add warning to commit message and comments to the code as per Chris Wilson's request.
      
      v3: Improve the source code comment.
      Signed-off-by: NOscar Mateo <oscar.mateo@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      38cc46d7
    • O
      drm/i915/vlv: Ack interrupts before handling them (VLV) · 3ff60f89
      Oscar Mateo 提交于
      Otherwise, we might receive a new interrupt before we have time to
      ack the first one, eventually missing it.
      
      Without an atomic XCHG operation with mmio space, this patch merely
      reduces the window in which we can miss an interrupt (especially when
      you consider how heavyweight the I915_READ/I915_WRITE operations are).
      
      Notice that, before clearing a port-sourced interrupt in the IIR, the
      corresponding interrupt source status in the PORT_HOTPLUG_STAT must be
      cleared.
      
      Spotted by Bob Beckett <robert.beckett@intel.com>.
      
      v2:
      - Reorder the IIR clearing to reduce the window even further.
      - Add warning to commit message and comments to the code as per Chris
        Wilson's request.
      - Imre Deak pointed out that the pipe underrun flag might not be signaled
        in IIR, so do not make valleyview_pipestat_irq_handler depend on it.
      
      v3: Improve the source code comment.
      Signed-off-by: NOscar Mateo <oscar.mateo@intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3ff60f89
    • O
      drm/i915: Ack interrupts before handling them (GEN5 - GEN7) · 72c90f62
      Oscar Mateo 提交于
      Otherwise, we might receive a new interrupt before we have time to ack the first
      one, eventually missing it.
      
      According to BSPec, the right order should be:
      
      1 - Disable Master Interrupt Control.
      2 - Find the source(s) of the interrupt.
      3 - Clear the Interrupt Identity bits (IIR).
      4 - Process the interrupt(s) that had bits set in the IIRs.
      5 - Re-enable Master Interrupt Control.
      
      Without an atomic XCHG operation with mmio space, the above merely reduces the window
      in which we can miss an interrupt (especially when you consider how heavyweight the
      I915_READ/I915_WRITE operations are).
      
      We maintain the "disable SDE interrupts when handling" hack since apparently it works.
      
      Spotted by Bob Beckett <robert.beckett@intel.com>.
      
      v2: Add warning to commit message and comments to the code as per Chris Wilson's request.
      v3: Improve the source comments.
      Signed-off-by: NOscar Mateo <oscar.mateo@intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      72c90f62
    • D
      drm/i915: Don't BUG_ON in i915_gem_obj_offset · f25748ea
      Daniel Vetter 提交于
      A WARN_ON is perfectly fine.
      
      The BUG in here seems to be the cause behind hard-hangs when I cat the
      i915_gem_pageflip debugfs file (which calls this from an irq
      spinlock). But only while running a full igt run after a while. I
      still need to root cause the underlying issue.
      
      I'll also start reject patches which add new BUG_ON but don't come
      with a really good justification for it. The general rule really
      should be to just WARN and hope the driver survives for long enough.
      
      v2: Make the WARN a bit more useful per Chris' suggestion.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f25748ea
    • D
      drm/i915: Grab dev->struct_mutex in i915_gem_pageflip_info · 8a270ebf
      Daniel Vetter 提交于
      We could walk of a bad list otherwise when someone concurrently
      unbinds stuff for fun.
      
      I've suspected this as the root-cause behind seemingly inconsistent
      state, but alas it's not.
      Acked-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      8a270ebf
    • B
      drm/i915: Add some L3 registers to the parser whitelist · c9224faa
      Brad Volkin 提交于
      Beignet needs these in order to program the L3 cache config for
      OpenCL workloads, particularly when using SLM.
      Signed-off-by: NBrad Volkin <bradley.d.volkin@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c9224faa
    • V
      drm/i915: Don't prefault the entire obj if the vma is smaller · beff0d0f
      Ville Syrjälä 提交于
      Take the minimum of the object size and the vma size and prefault
      only that much. Avoids a SIGBUS when mmapping only a portion of the
      object.
      
      Prefaulting was introduced here:
       commit b90b91d8
       Author: Chris Wilson <chris@chris-wilson.co.uk>
       Date:   Tue Jun 10 12:14:40 2014 +0100
      
          drm/i915: Prefault the entire object on first page fault
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Testcase: igt/gem_mmap/short-mmap
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      beff0d0f
  2. 17 6月, 2014 10 次提交
  3. 14 6月, 2014 4 次提交
  4. 13 6月, 2014 19 次提交