1. 04 11月, 2015 1 次提交
  2. 02 11月, 2015 1 次提交
  3. 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
  4. 26 10月, 2015 1 次提交
  5. 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
  6. 13 10月, 2015 1 次提交
  7. 05 10月, 2015 1 次提交
  8. 30 9月, 2015 6 次提交
    • M
      drm/i915/skl: Simplify wm structures slightly (v2) · 4969d33e
      Matt Roper 提交于
      A bunch of SKL watermark-related structures have the cursor plane as a
      separate entry from the rest of the planes.  Since a previous patch
      updated I915_MAX_PLANES such that those plane arrays now have a slot for
      the cursor, update the code to use the new slot in the existing plane
      arrays and kill off the cursor-specific structures.
      
      There shouldn't be any functional change here; this is just shuffling
      around how the data is stored in some of the data structures.  The whole
      patch is generated with Coccinelle via the following semantic patch:
      
              @@ struct skl_pipe_wm_parameters WMP; @@
              - WMP.cursor
              + WMP.plane[PLANE_CURSOR]
      
              @@ struct skl_pipe_wm_parameters *WMP; @@
              - WMP->cursor
              + WMP->plane[PLANE_CURSOR]
      
              @@ @@
              struct skl_pipe_wm_parameters {
              ...
              - struct intel_plane_wm_parameters cursor;
              ...
              };
      
              @@
              struct skl_ddb_allocation DDB;
              expression E;
              @@
              - DDB.cursor[E]
              + DDB.plane[E][PLANE_CURSOR]
      
              @@
              struct skl_ddb_allocation *DDB;
              expression E;
              @@
              - DDB->cursor[E]
              + DDB->plane[E][PLANE_CURSOR]
      
              @@ @@
              struct skl_ddb_allocation {
              ...
              - struct skl_ddb_entry cursor[I915_MAX_PIPES];
              ...
              };
      
              @@
              struct skl_wm_values WMV;
              expression E1, E2;
              @@
              (
              - WMV.cursor[E1][E2]
              + WMV.plane[E1][PLANE_CURSOR][E2]
              |
              - WMV.cursor_trans[E1]
              + WMV.plane_trans[E1][PLANE_CURSOR]
              )
      
              @@
              struct skl_wm_values *WMV;
              expression E1, E2;
              @@
              (
              - WMV->cursor[E1][E2]
              + WMV->plane[E1][PLANE_CURSOR][E2]
              |
              - WMV->cursor_trans[E1]
              + WMV->plane_trans[E1][PLANE_CURSOR]
              )
      
              @@ @@
              struct skl_wm_values {
              ...
              - uint32_t cursor[I915_MAX_PIPES][8];
              ...
              - uint32_t cursor_trans[I915_MAX_PIPES];
              ...
              };
      
              @@ struct skl_wm_level WML; @@
              (
              - WML.cursor_en
              + WML.plane_en[PLANE_CURSOR]
              |
              - WML.cursor_res_b
              + WML.plane_res_b[PLANE_CURSOR]
              |
              - WML.cursor_res_l
              + WML.plane_res_l[PLANE_CURSOR]
              )
      
              @@ struct skl_wm_level *WML; @@
              (
              - WML->cursor_en
              + WML->plane_en[PLANE_CURSOR]
              |
              - WML->cursor_res_b
              + WML->plane_res_b[PLANE_CURSOR]
              |
              - WML->cursor_res_l
              + WML->plane_res_l[PLANE_CURSOR]
              )
      
              @@ @@
              struct skl_wm_level {
              ...
              - bool cursor_en;
              ...
              - uint16_t cursor_res_b;
              - uint8_t cursor_res_l;
              ...
              };
      
      v2: Use a PLANE_CURSOR enum entry rather than making the code reference
          I915_MAX_PLANES or I915_MAX_PLANES+1, which was confusing.  (Ander)
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4969d33e
    • Ł
      drm/i915/bdw: Check for slice, subslice and EU count for BDW · 91bedd34
      Łukasz Daniluk 提交于
      Added checks for available slices, subslices and EUs for Broadwell. This
      information is filled in intel_device_info and is available to user with
      GET_PARAM.
      Added checks for enabled slices, subslices and EU for Broadwell. This
      information is based on available counts but takes power gated slices
      into account. It can be read in debugfs.
      Introduce new register defines that contain information on slices on
      Broadwell.
      
      v2:
      - Introduce GT_SLICE_INFO register
      - Change Broadwell sseu_device_status function to use GT_SLICE_INFO
        register instead of RPCS register
      - Undo removal of dev_priv variables in Cherryview and Gen9
        sseu_device_satus functions
      
      v3:
      - Fix style issues
      
      v4:
      - Corrected comment
      - Reverted reordering of defines
      
      Cc: Jeff Mcgee <jeff.mcgee@intel.com>
      Cc: Arun Siluvery <arun.siluvery@linux.intel.com>
      Signed-off-by: NŁukasz Daniluk <lukasz.daniluk@intel.com>
      Reviewed-by: NJeff McGee <jeff.mcgee@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      91bedd34
    • R
      drm/i915: Fix comparison bug · 2d05fa16
      Rasmus Villemoes 提交于
      ->stolen->start has type u64 aka unsigned long long; relying on the
      difference (effectively cast to int) for sorting is wrong.
      
      It wouldn't be a problem in practice if the values compared are always
      within INT_MAX of each other (so that the difference is actually
      representable in an int), but 440fd528 ("drm/mm: Support 4 GiB and
      larger ranges") strongly suggests that's not the case.
      
      Note: atm we don't support more than about 1G of stolen, so this is
      impossible currenlty.
      Signed-off-by: NRasmus Villemoes <linux@rasmusvillemoes.dk>
      [danvet: Add note that this is impossible currently.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      2d05fa16
    • M
      drm/i915: Add CD and pixel clock information · 1170f28c
      Mika Kahola 提交于
      This patch adds information of current and maximum CD clock
      frequency and pixel clock frequency information on 'i915_debugfs.c'.
      
      v2:
      - combined seperate patches for current CD clock, maximum CD clock
        and maximum pixel clock
      - space added between the frequency value and the unit
      Signed-off-by: NMika Kahola <mika.kahola@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1170f28c
    • V
      drm/i915: s/_CURACNTR/CURCNTR(PIPE_A)/ · 0b87c24e
      Ville Syrjälä 提交于
      v2: Deal with _CURABASE too
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      0b87c24e
    • V
  9. 25 9月, 2015 1 次提交
  10. 23 9月, 2015 1 次提交
  11. 10 9月, 2015 1 次提交
  12. 04 9月, 2015 1 次提交
  13. 02 9月, 2015 1 次提交
  14. 31 8月, 2015 1 次提交
  15. 26 8月, 2015 1 次提交
  16. 15 8月, 2015 5 次提交
  17. 14 8月, 2015 1 次提交
  18. 11 8月, 2015 1 次提交
  19. 22 7月, 2015 1 次提交
  20. 21 7月, 2015 2 次提交
  21. 15 7月, 2015 1 次提交
  22. 13 7月, 2015 1 次提交
  23. 08 7月, 2015 1 次提交
  24. 06 7月, 2015 2 次提交
    • P
      drm/i915: FBC doesn't need struct_mutex anymore · c80ac854
      Paulo Zanoni 提交于
      Everything is covered either by fbc.lock or mm.stolen_lock, and
      intel_fbc.c is already responsible for grabbing the appropriate locks
      when it needs them.
      Reviewed-by: NChris wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c80ac854
    • P
      drm/i915: add the FBC mutex · 25ad93fd
      Paulo Zanoni 提交于
      Make sure we're not going to have weird races in really weird cases
      where a lot of different CRTCs are doing rendering and modesets at the
      same time.
      
      With this change and the stolen_lock from the previous patch, we can
      start removing the struct_mutex locking we have around FBC in the next
      patches.
      
      v2:
       - Rebase (6 months later)
       - Also lock debugfs and stolen.
      v3:
       - Don't lock a single value read (Chris).
       - Replace lockdep assertions with WARNs (Daniel).
       - Improve commit message.
       - Don't forget intel_pre_plane_update() locking.
      v4:
       - Don't remove struct_mutex at intel_pre_plane_update() (Chris).
       - Add comment regarding locking dependencies (Chris).
       - Rebase after the stolen code rework.
       - Rebase again after drm-intel-nightly changes.
      v5:
       - Rebase after the new stolen_lock patch.
      
      Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v4)
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      25ad93fd
  25. 03 7月, 2015 1 次提交
  26. 29 6月, 2015 1 次提交
  27. 27 6月, 2015 1 次提交
  28. 26 6月, 2015 2 次提交