1. 09 7月, 2020 1 次提交
  2. 10 6月, 2020 1 次提交
    • M
      drm/i915/rkl: RKL uses ABOX0 for pixel transfers · 62afef28
      Matt Roper 提交于
      Rocket Lake uses the same 'abox0' mechanism to handle pixel data
      transfers from memory that gen11 platforms used, rather than the
      abox1/abox2 interfaces used by TGL/DG1.  For the most part this is a
      hardware implementation detail that's transparent to driver software,
      but we do have to program a couple of tuning registers (MBUS_ABOX_CTL
      and BW_BUDDY registers) according to which ABOX instances are used by a
      platform.  Let's track the platform's ABOX usage in the device info
      structure and use that to determine which instances of these registers
      to program.
      
      As an exception to this rule is that even though TGL/DG1 use ABOX1+ABOX2
      for data transfers, we're still directed to program the ABOX_CTL
      register for ABOX0; so we'll handle that as a special case.
      
      v2:
       - Store the mask of platform-specific abox registers in the device
         info structure.
       - Add a TLB_REQ_TIMER() helper macro.  (Aditya)
      
      v3:
       - Squash ABOX and BW_BUDDY patches together and use a single mask for
         both of them, plus a special-case for programming the ABOX0 instance
         on all gen12.  (Ville)
      
      Bspec: 50096
      Bspec: 49218
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Aditya Swarup <aditya.swarup@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200606025740.3308880-2-matthew.d.roper@intel.comReviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      62afef28
  3. 05 6月, 2020 1 次提交
  4. 03 6月, 2020 1 次提交
  5. 20 5月, 2020 1 次提交
  6. 15 5月, 2020 1 次提交
  7. 18 4月, 2020 1 次提交
  8. 04 4月, 2020 1 次提交
  9. 19 2月, 2020 1 次提交
  10. 16 2月, 2020 1 次提交
  11. 06 2月, 2020 1 次提交
    • S
      drm/i915: Manipulate DBuf slices properly · 0f0f9aee
      Stanislav Lisovskiy 提交于
      Start manipulating DBuf slices as a mask,
      but not as a total number, as current approach
      doesn't give us full control on all combinations
      of slices, which we might need(like enabling S2
      only can't enabled by setting enabled_slices=1).
      
      Removed wrong code from intel_get_ddb_size as
      it doesn't match to BSpec. For now still just
      use DBuf slice until proper algorithm is implemented.
      
      Other minor code refactoring to get prepared
      for major DBuf assignment changes landed:
      - As now enabled slices contain a mask
        we still need some value which should
        reflect how much DBuf slices are supported
        by the platform, now device info contains
        num_supported_dbuf_slices.
      - Removed unneeded assertion as we are now
        manipulating slices in a more proper way.
      
      v2: Start using enabled_slices in dev_priv
      
      v3: "enabled_slices" is now "enabled_dbuf_slices_mask",
          as this now sits in dev_priv independently.
      
      v4: - Fixed debug print formatting to hex(Matt Roper)
          - Optimized dbuf slice updates to be used only
            if slice union is different from current conf(Matt Roper)
          - Fixed some functions to be static(Matt Roper)
          - Created a parameterized version for DBUF_CTL to
            simplify DBuf programming cycle(Matt Roper)
          - Removed unrequred field from GEN10_FEATURES(Matt Roper)
      
      v5: - Removed redundant programming dbuf slices helper(Ville Syrjälä)
          - Started to use parameterized loop for hw readout to get slices
            (Ville Syrjälä)
          - Added back assertion checking amount of DBUF slices enabled
            after DC states 5/6 transition, also added new assertion
            as starting from ICL DMC seems to restore the last DBuf
            power state set, rather than power up all dbuf slices
            as assertion was previously expecting(Ville Syrjälä)
      
      v6: - Now using enum for DBuf slices in this patch (Ville Syrjälä)
          - Removed gen11_assert_dbuf_enabled and put gen9_assert_dbuf_enabled
            back, as we really need to have a single unified assert here
            however currently enabling always slice 1 is enforced by BSpec,
            so we will have to OR enabled slices mask with 1 in order
            to be consistent with BSpec, that way we can unify that
            assertion and against the actual state from the driver, but
            not some hardcoded value.(concluded with Ville)
          - Remove parameterized DBUF_CTL version, to extract it to another
            patch.(Ville Syrjälä)
      v7:
          - Removed unneeded hardcoded return value for older gens from
            intel_enabled_dbuf_slices_mask - this now is handled in a
            unified manner since device info anyway returns max dbuf slices
            as 1 for older platforms(Matthew Roper)
          - Now using INTEL_INFO(dev_priv)->num_supported_dbuf_slices instead
            of intel_dbuf_max_slices function as it is trivial(Matthew Roper)
      
      v8: - Fixed icl_dbuf_disable to disable all dbufs still(Ville Syrjälä)
      
      v9: - Renamed _DBUF_CTL_S to DBUF_CTL_S(Ville Syrjälä)
          - Now using power_domain mutex to protect from race condition, which
            can occur because intel_dbuf_slices_update might be running in
            parallel to gen9_dc_off_power_well_enable being called from
            intel_dp_detect for instance, which causes assertion triggered by
            race condition, as gen9_assert_dbuf_enabled might preempt this
            when registers were already updated, while dev_priv was not.
      Reviewed-by: NMatt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200202230630.8975-6-stanislav.lisovskiy@intel.com
      0f0f9aee
  12. 09 12月, 2019 1 次提交
  13. 30 10月, 2019 2 次提交
  14. 26 10月, 2019 1 次提交
  15. 18 10月, 2019 1 次提交
  16. 23 9月, 2019 1 次提交
  17. 12 9月, 2019 1 次提交
  18. 31 7月, 2019 1 次提交
  19. 25 7月, 2019 1 次提交
  20. 13 7月, 2019 1 次提交
    • A
      drm/i915: Add modular FIA · 0caf6257
      Anusha Srivatsa 提交于
      Some platforms may have Modular FIA. If Modular FIA is used in the SOC,
      then Display Driver will access the additional instances of
      FIA based on pre-assigned offset in GTTMADDR space.
      
      Each Modular FIA instance has its own IOSF Sideband Port ID
      and it houses only 2 Type-C Port. In SOC that has more than
      two Type-C Ports, there are multiple instances of Modular FIA.
      Gunit will need to use different destination ID when it access
      different pair of Type-C Port.
      
      The DFLEXDPSP register has Modular FIA bit starting on Tiger Lake.  If
      Modular FIA is used in the SOC, this register bit exists in all the
      instances of Modular FIA. IOM FW is required to program only the MF bit
      in first FIA instance that houses the Type-C Port 0 and Port 1, for
      Display Driver to read from.
      
      v2 (Lucas):
        - Move all accesses to FIA to be contained in intel_tc.c, along with
          display_fia that is now called tc_phy_fia
        - Save the fia instance number on intel_digital_port, so we don't have
          to query if modular FIA is used on every access
      v3 (Lucas): Make function static
      v4 (Lucas): Move enum phy_fia to the header and use it in
         intel_digital_port (suggested by Ville)
      v5 (Lucas): Add comment about the mapping between FIA and TC port
         (suggested by Stuart)
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Signed-off-by: NAnusha Srivatsa <anusha.srivatsa@intel.com>
      Signed-off-by: NLucas De Marchi <lucas.demarchi@intel.com>
      Acked-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NStuart Summers <stuart.summers@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190712055706.12143-2-lucas.demarchi@intel.com
      0caf6257
  21. 12 7月, 2019 1 次提交
  22. 17 6月, 2019 2 次提交
  23. 12 6月, 2019 1 次提交
  24. 09 6月, 2019 1 次提交
  25. 31 5月, 2019 1 次提交
  26. 29 5月, 2019 2 次提交
  27. 25 4月, 2019 1 次提交
  28. 24 4月, 2019 1 次提交
  29. 19 4月, 2019 1 次提交
  30. 02 4月, 2019 2 次提交
    • C
      drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h · 3a891a62
      Chris Wilson 提交于
      We want to use intel_engine_mask_t inside i915_request.h, which means
      extracting it from the general header file mess and placing it inside a
      types.h. A knock on effect is that the compiler wants to warn about
      type-contraction of ALL_ENGINES into intel_engine_maskt_t, so prepare
      for the worst.
      
      v2: Use intel_engine_mask_t consistently
      v3: Move I915_NUM_ENGINES to its natural home at the end of the enum
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Cc: John Harrison <John.C.Harrison@Intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190401162641.10963-1-chris@chris-wilson.co.ukReviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      3a891a62
    • T
      drm/i915: Introduce concept of a sub-platform · 805446c8
      Tvrtko Ursulin 提交于
      Concept of a sub-platform already exist in our code (like ULX and ULT
      platform variants and similar),implemented via the macros which check a
      list of device ids to determine a match.
      
      With this patch we consolidate device ids checking into a single function
      called during early driver load.
      
      A few low bits in the platform mask are reserved for sub-platform
      identification and defined as a per-platform namespace.
      
      At the same time it future proofs the platform_mask handling by preparing
      the code for easy extending, and tidies the very verbose WARN strings
      generated when IS_PLATFORM macros are embedded into a WARN type
      statements.
      
      v2: Fixed IS_SUBPLATFORM. Updated commit msg.
      v3: Chris was right, there is an ordering problem.
      
      v4:
       * Catch-up with new sub-platforms.
       * Rebase for RUNTIME_INFO.
       * Drop subplatform mask union tricks and convert platform_mask to an
         array for extensibility.
      
      v5:
       * Fix subplatform check.
       * Protect against forgetting to expand subplatform bits.
       * Remove platform enum tallying.
       * Add subplatform to error state. (Chris)
       * Drop macros and just use static inlines.
       * Remove redundant IRONLAKE_M. (Ville)
      
      v6:
       * Split out Ironlake change.
       * Optimize subplatform check.
       * Use __always_inline. (Lucas)
       * Add platform_mask comment. (Paulo)
       * Pass stored runtime info in error capture. (Chris)
      
      v7:
       * Rebased for new AML ULX device id.
       * Bump platform mask array size for EHL.
       * Stop mentioning device ids in intel_device_subplatform_init by using
         the trick of splitting macros i915_pciids.h. (Jani)
       * AML seems to be either a subplatform of KBL or CFL so express it like
         that.
      
      v8:
       * Use one device id table per subplatform. (Jani)
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Suggested-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Cc: Jose Souza <jose.souza@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Acked-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190327142328.31780-1-tvrtko.ursulin@linux.intel.com
      805446c8
  31. 26 3月, 2019 1 次提交
  32. 23 3月, 2019 1 次提交
  33. 15 3月, 2019 2 次提交
  34. 06 3月, 2019 1 次提交
  35. 06 2月, 2019 1 次提交