1. 12 8月, 2014 2 次提交
  2. 11 8月, 2014 1 次提交
    • O
      drm/i915/bdw: Populate LR contexts (somewhat) · 8670d6f9
      Oscar Mateo 提交于
      For the most part, logical ring context objects are similar to hardware
      contexts in that the backing object is meant to be opaque. There are
      some exceptions where we need to poke certain offsets of the object for
      initialization, updating the tail pointer or updating the PDPs.
      
      For our basic execlist implementation we'll only need our PPGTT PDs,
      and ringbuffer addresses in order to set up the context. With previous
      patches, we have both, so start prepping the context to be load.
      
      Before running a context for the first time you must populate some
      fields in the context object. These fields begin 1 PAGE + LRCA, ie. the
      first page (in 0 based counting) of the context  image. These same
      fields will be read and written to as contexts are saved and restored
      once the system is up and running.
      
      Many of these fields are completely reused from previous global
      registers: ringbuffer head/tail/control, context control matches some
      previous MI_SET_CONTEXT flags, and page directories. There are other
      fields which we don't touch which we may want in the future.
      
      v2: CTX_LRI_HEADER_0 is MI_LOAD_REGISTER_IMM(14) for render and (11)
      for other engines.
      
      v3: Several rebases and general changes to the code.
      
      v4: Squash with "Extract LR context object populating"
      Also, Damien's review comments:
      - Set the Force Posted bit on the LRI header, as the BSpec suggest we do.
      - Prevent warning when compiling a 32-bits kernel without HIGHMEM64.
      - Add a clarifying comment to the context population code.
      
      v5: Damien's review comments:
      - The third MI_LOAD_REGISTER_IMM in the context does not set Force Posted.
      - Remove dead code.
      
      v6: Add a note about the (presumed) differences between BDW and CHV state
      contexts. Also, Brad's review comments:
      - Use the _MASKED_BIT_ENABLE, upper_32_bits and lower_32_bits macros.
      - Be less magical about how we set the ring size in the context.
      
      Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v1)
      Signed-off-by: Rafael Barbalho <rafael.barbalho@intel.com> (v2)
      Signed-off-by: NOscar Mateo <oscar.mateo@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      8670d6f9
  3. 08 8月, 2014 14 次提交
  4. 07 8月, 2014 1 次提交
  5. 21 7月, 2014 1 次提交
  6. 12 7月, 2014 2 次提交
  7. 11 7月, 2014 4 次提交
  8. 10 7月, 2014 1 次提交
    • P
      drm/i915: fix D_COMP usage on BDW · 9ccd5aeb
      Paulo Zanoni 提交于
      On HSW, the D_COMP register can be accessed through the mailbox (read
      and write) or through MMIO on a MCHBAR offset (read only). On BDW, the
      access should be done through MMIO on another address. So to account
      for all these cases, create hsw_read_dcomp() with the correct
      implementation for reading, and also fix hsw_write_dcomp() to do the
      correct thing on BDW.
      
      With this patch, we can now get back from the PC8+ state on BDW. We
      were previously getting a black screen and lots of dmesg errors.
      Please notice that the bug only happens when you actually reach the
      PC8+ states, not when you only allow it.
      
      Testcase: igt/pm_rpm/rte
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9ccd5aeb
  9. 09 7月, 2014 2 次提交
  10. 08 7月, 2014 2 次提交
    • B
      drm/i915/bdw: implement semaphore wait · 5ee426ca
      Ben Widawsky 提交于
      Semaphore waits use a new instruction, MI_SEMAPHORE_WAIT. The seqno to
      wait on is all well defined by the table in the previous patch. There is
      nothing else different from previous GEN's semaphore synchronization
      code.
      
      v2: Update macros to not require the other ring's ring->id (Chris)
      
      v3: Add missing VCS2 gen8_ring_wait init besides
          s/ring_buffer/engine_cs (Rodrigo)
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      5ee426ca
    • B
      drm/i915/bdw: implement semaphore signal · 3e78998a
      Ben Widawsky 提交于
      Semaphore signalling works similarly to previous GENs with the exception
      that the per ring mailboxes no longer exist. Instead you must define
      your own space, somewhere in the GTT.
      
      The comments in the code define the layout I've opted for, which should
      be fairly future proof. Ie. I tried to define offsets in abstract terms
      (NUM_RINGS, seqno size, etc).
      
      NOTE: If one wanted to move this to the HWSP they could. I've decided
      one 4k object would be easier to deal with, and provide potential wins
      with cache locality, but that's all speculative.
      
      v2: Update the macro to not need the other ring's ring->id (Chris)
      Update the comment to use the correct formula (Chris)
      
      v3: Move the macros the ringbuffer.h to prevent churn in next patch
      (Ville)
      
      v4: Fixed compilation rebase conflict
      commit 1ec9e26d
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Fri Feb 14 14:01:11 2014 +0100
      
          drm/i915: Consolidate binding parameters into flags
      
      v5: VCS2 rebase
      Replace hweight_long with hweight32
      
      v6 (Rodrigo): * Add missed VC2 gen8 ring signal init
         	      * fixing conflicst on rebase
          	      * minor fixes on address table
      	      * remove WARN_ON
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      [danvet: s/BUG_ON/WARN_ON/]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3e78998a
  11. 07 7月, 2014 1 次提交
  12. 18 6月, 2014 1 次提交
  13. 17 6月, 2014 1 次提交
  14. 13 6月, 2014 2 次提交
  15. 11 6月, 2014 5 次提交