1. 03 12月, 2015 2 次提交
    • A
      drm/i915/guc: Clean up locks in GuC · 5a843307
      Alex Dai 提交于
      For now, remove the spinlocks that protected the GuC's
      statistics block and work queue; they are only accessed
      by code that already holds the global struct_mutex, and
      so are redundant (until the big struct_mutex rewrite!).
      
      The specific problem that the spinlocks caused was that
      if the work queue was full, the driver would try to
      spinwait for one jiffy, but with interrupts disabled the
      jiffy count would not advance, leading to a system hang.
      The issue was found using test case igt/gem_close_race.
      
      The new version will usleep() instead, still holding
      the struct_mutex but without any spinlocks.
      
      v4: Reorganize commit message (Dave Gordon)
      v3: Remove unnecessary whitespace churn
      v2: Clean up wq_lock too
      v1: Clean up host2guc lock as well
      Signed-off-by: NAlex Dai <yu.dai@intel.com>
      Reviewed-by: NDave Gordon <david.s.gordon@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1449104189-27591-1-git-send-email-yu.dai@intel.comSigned-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      5a843307
    • P
      drm/i915: introduce is_active/activate/deactivate to the FBC terminology · 0e631adc
      Paulo Zanoni 提交于
      The long term goal is to have enable/disable as the higher level
      functions and activate/deactivate as the lower level functions, just
      like we do for PSR and for the CRTC. This way, we'll run enable and
      disable once per modeset, while update, activate and deactivate will
      be run many times. With this, we can move the checks and code that
      need to run only once per modeset to enable(), making the code simpler
      and possibly a little faster.
      
      This patch is just the first step on the conversion: it starts by
      converting the current low level functions from enable/disable to
      activate/deactivate. This patch by itself has no benefits other than
      making review and rebase easier. Please see the next patches for more
      details on the conversion.
      
      v2:
        - Rebase.
        - Improve commit message (Chris).
      v3: Rebase after changing the patch order.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/
      0e631adc
  2. 30 11月, 2015 1 次提交
  3. 24 11月, 2015 1 次提交
    • R
      drm/i915: Remove PSR Perf Counter for SKL+ · 05eec3c2
      Rodrigo Vivi 提交于
      Whenever DMC firmware put the HW into DC State a bunch
      of registers including this perf counter is reset to 0.
      
      Even with PSR active and working we could still read
      "Performance_Counter: 0" what will misslead people to believe
      PSR is broken. For instance on SKL we can only see PC10
      residency with screen on if PSR is working properly.
      However Performance_Counter was showing 0.
      
      Even if it restored properly on DC6 exit we don't want to
      give users the wrong impression that PSR is not working
      while we know for sure it is.
      
      So, it is better to remove this counter information while
      we don't have a better way to track PSR residency.
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Reviewed-by: NDurgadoss R <durgadoss.r@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      05eec3c2
  4. 23 11月, 2015 1 次提交
  5. 20 11月, 2015 1 次提交
    • L
      drm/i915: Fix oops caused by fbdev initialization failure · 54632abe
      Lukas Wunner 提交于
      intelfb_create() is called once on driver initialization. If it fails,
      ifbdev->helper.fbdev, ifbdev->fb or ifbdev->fb->obj may be NULL.
      
      Further up in the call stack, intel_fbdev_initial_config() calls
      intel_fbdev_fini() to tear down the ifbdev on failure. This calls
      intel_fbdev_destroy() which dereferences ifbdev->fb. Fix the ensuing
      oops.
      
      Also check in these functions if ifbdev is not NULL to avoid oops:
      
      i915_gem_framebuffer_info() is called on access to debugfs file
      "i915_gem_framebuffer" and dereferences ifbdev, ifbdev->helper.fb
      and ifbdev->helper.fb->obj.
      
      intel_connector_add_to_fbdev() / intel_connector_remove_from_fbdev()
      are called when registering / unregistering an mst connector and
      dereference ifbdev.
      
      v3: Drop additional null pointer checks in intel_fbdev_set_suspend(),
          intel_fbdev_output_poll_changed() and intel_fbdev_restore_mode()
          since they already check if ifbdev is not NULL, which is sufficient
          now that intel_fbdev_fini() is called on initialization failure.
          (Requested by Daniel Vetter <daniel.vetter@ffwll.ch>)
      Signed-off-by: NLukas Wunner <lukas@wunner.de>
      Link: http://patchwork.freedesktop.org/patch/msgid/d05f0edf121264a9d0adb8ca713fd8cc4ae068bf.1447938059.git.lukas@wunner.deSigned-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      54632abe
  6. 18 11月, 2015 4 次提交
  7. 16 11月, 2015 1 次提交
  8. 10 11月, 2015 4 次提交
  9. 04 11月, 2015 1 次提交
  10. 02 11月, 2015 1 次提交
  11. 29 10月, 2015 1 次提交
    • R
      drm/i915/kbl: Introduce Kabylake platform defition. · ef11bdb3
      Rodrigo Vivi 提交于
      Kabylake is a Intel® Processor containing Intel® HD Graphics
      following Skylake.
      
      It is Gen9p5, so it inherits everything from Skylake.
      
      Let's start by adding the platform separated from Skylake
      but reusing most of all features, functions etc. Later we
      rebase the PCI-ID patch without is_skylake=1
      so we don't replace what original Author did there.
      
      Few IS_SKYLAKEs if statements are not being covered by this patch
      on purpose:
         - Workarounds: Kabylake is derivated from Skylake H0 so no
           		  W/As apply here.
         - GuC: A following patch removes Kabylake support with an
           	  explanation: No firmware available yet.
         - DMC/CSR: Done in a separated patch since we need to be carefull
           	      and load the version for revision 7 since
      	      Kabylake is Skylake H0.
      
      v2: relative cleaner commit message and added the missed
          IS_KABYLAKE to intel_i2c.c as pointed out by Jani.
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      ef11bdb3
  12. 26 10月, 2015 1 次提交
  13. 21 10月, 2015 1 次提交
    • A
      drm/i915/guc: Add GuC css header parser · feda33ef
      Alex Dai 提交于
      The size / offset information of all firmware ingredients are
      now caculated from header. Driver will validate the header and
      rsa key size. If any component is out of boundary, driver will
      reject the loading too.
      
      v6: Clean up warnings from make docs
      
      v5: Tidy up GuC titles in kernel/Doc
      
      v4: Now using 'size_dw' for those defined in css_header
      
      v3: 1) Move DOC to intel_guc_fwif.h right before css_header
      definition. Add more comments.
          2) Change 'size' to 'len' or 'length' to avoid confusion.
          3) Add UOS_RSA_SCRATCH_MAX_COUNT according to BSpec. And
      driver validate size of RSA key now.
          4) Add fw component size/offset info to intel_guc_fw.
      
      v2: Add indent into DOC to make fixed-width format rather than
      change the tmpl.
      
      v1: 1) guc_css_header is defined as __packed now
          2) Add and correct GuC related topics in kernel/Doc
      Signed-off-by: NAlex Dai <yu.dai@intel.com>
      Reviewed-by: NDave Gordon <david.s.gordon@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      feda33ef
  14. 13 10月, 2015 1 次提交
  15. 05 10月, 2015 1 次提交
  16. 30 9月, 2015 7 次提交
  17. 25 9月, 2015 1 次提交
  18. 23 9月, 2015 1 次提交
  19. 10 9月, 2015 1 次提交
  20. 04 9月, 2015 1 次提交
  21. 02 9月, 2015 1 次提交
  22. 31 8月, 2015 1 次提交
  23. 26 8月, 2015 1 次提交
  24. 15 8月, 2015 4 次提交