1. 09 3月, 2021 2 次提交
  2. 26 1月, 2021 1 次提交
  3. 17 11月, 2020 3 次提交
  4. 06 11月, 2020 1 次提交
  5. 16 10月, 2020 2 次提交
  6. 14 10月, 2020 1 次提交
  7. 06 10月, 2020 2 次提交
    • I
      drm/i915/tgl: Fix Combo PHY DPLL fractional divider for 38.4MHz ref clock · 0e2497e3
      Imre Deak 提交于
      Apply Display WA #22010492432 for combo PHY PLLs too. This should fix a
      problem where the PLL output frequency is slightly off with the current
      PLL fractional divider value.
      
      I haven't seen an actual case where this causes a problem, but let's
      follow the spec. It's also needed on some EHL platforms, but for that we
      also need a way to distinguish the affected EHL SKUs, so I leave that
      for a follow-up.
      
      v2:
      - Apply the WA at one place when calculating the PLL dividers from the
        frequency and the frequency from the dividers for all the combo PLL
        use cases (DP, HDMI, TBT). (Ville)
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201003001846.1271151-6-imre.deak@intel.com
      0e2497e3
    • I
      drm/i915/skl: Work around incorrect BIOS WRPLL PDIV programming · 7a8a95f5
      Imre Deak 提交于
      The BIOS of at least one ASUS-Z170M system with an SKL I have programs
      the 101b WRPLL PDIV divider value, which is the encoding for PDIV=7 with
      bit#0 incorrectly set.
      
      This happens with the
      
      "3840x2160": 30 262750 3840 3888 3920 4000 2160 2163 2168 2191 0x48 0x9
      
      HDMI mode (scaled from a 1024x768 src fb) set by BIOS and the
      
      ref_clock=24000, dco_integer=383, dco_fraction=5802, pdiv=7, qdiv=1, kdiv=1
      
      WRPLL parameters (assuming PDIV=7 was the intended setting). This
      corresponds to 262749 PLL frequency/port clock.
      
      Later the driver sets the same mode for which it calculates the same
      dco_int/dco_frac/div WRPLL parameters (with the correct PDIV=7 encoding).
      
      Based on the above, let's assume that PDIV=7 was intended and the HW
      just ignores bit#0 in the PDIV register field for this setting, treating
      100b and 101b encodings the same way.
      
      While at it add the MISSING_CASE() for the p0,p2 divider decodings.
      
      v2: (Ville)
      - Add a define for the incorrect divider value.
      - Emit only a debug message when detecting the incorrect divider value.
      - Use fallthrough from the incorrect divider value case.
      - Add the MISSING_CASE()s.
      
      v3: Return 0 freq for incorrect divider values. (Ville)
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201006013555.1488262-1-imre.deak@intel.com
      7a8a95f5
  8. 16 9月, 2020 1 次提交
  9. 24 8月, 2020 1 次提交
  10. 18 8月, 2020 2 次提交
    • M
      drm/i915/rkl: Handle HTI · ddff9a60
      Matt Roper 提交于
      If HTI (also sometimes called HDPORT) is enabled at startup, it may be
      using some of the PHYs and DPLLs making them unavailable for general
      usage.  Let's read out the HDPORT_STATE register and avoid making use of
      resources that HTI is already using.
      
      v2:
       - Fix minor checkpatch warnings
      
      v3:
       - Just readout HDPORT_STATE register once during init and then parse it
         later as needed.
       - Add a 'has_hti' device info flag to track whether we should readout
         HDPORT_STATE or not.  We can skip the platform/flag tests later since
         the hti_state in dev_priv will remain 0 for platforms it does not
         apply to.
       - Move PLL masking into icl_get_combo_phy_dpll() since at the moment
         RKL is the only platform that has HTI.  (Jose)
      
      Bspec: 49189
      Bspec: 53707
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Cc: José Roberto de Souza <jose.souza@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200716220551.2730644-5-matthew.d.roper@intel.comReviewed-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      ddff9a60
    • M
      drm/i915/rkl: Add DPLL4 support · e66f609b
      Matt Roper 提交于
      Rocket Lake has a third DPLL (called 'DPLL4') that must be used to
      enable a third display.  Unlike EHL's variant of DPLL4, the RKL variant
      behaves the same as DPLL0/1.  And despite its name, the DPLL4 registers
      are offset as if it were DPLL2.
      
      v2:
       - Add new .update_ref_clks() hook.
      
      v3:
       - Renumber TBT PLL to '3' and switch _MMIO_PLL3 to _MMIO_PLL (Lucas)
      
      v4:
       - Don't drop _MMIO_PLL3; although it's now unused, we're going to need
         it very soon again for upcoming DG1 patches.  (Lucas)
      
      v5:
       - Don't re-number TBT PLL and beyond, just use new RKL_DPLL_CFGCR
         macros to lookup the proper registers instead.  Although renumbering
         the PLLs might be something we want to consider down the road, it
         opens a big can of worms right now since a bunch of places in the
         code have an assumption that the PLL table has idx==id and no holes.
         Renumbering creates a hole for TGL, so we'd either need to allow
         holes in the table or break the idx==id invariant, both of which are
         somewhat invasive changes to the design.
      
      Bspec: 49202
      Bspec: 49443
      Bspec: 50288
      Bspec: 50289
      Cc: Lucas De Marchi <lucas.demarchi@intel.com>
      Cc: José Roberto de Souza <jose.souza@intel.com>
      Signed-off-by: NMatt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200716220551.2730644-4-matthew.d.roper@intel.comReviewed-by: NLucas De Marchi <lucas.demarchi@intel.com>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      e66f609b
  11. 01 7月, 2020 2 次提交
  12. 21 4月, 2020 1 次提交
  13. 09 3月, 2020 1 次提交
  14. 03 3月, 2020 12 次提交
  15. 11 2月, 2020 1 次提交
  16. 04 2月, 2020 1 次提交
    • P
      drm/i915/display/dpll_mgr: Make WARN* drm specific where drm_device ptr is available · 99bc73ec
      Pankaj Bharadiya 提交于
      drm specific WARN* calls include device information in the
      backtrace, so we know what device the warnings originate from.
      
      Covert all the calls of WARN* with device specific drm_WARN*
      variants in functions where drm_device or drm_i915_private struct
      pointer is readily available.
      
      The conversion was done automatically with below coccinelle semantic
      patch. checkpatch errors/warnings are fixed manually.
      
      @rule1@
      identifier func, T;
      @@
      func(...) {
      ...
      struct drm_device *T = ...;
      <...
      (
      -WARN(
      +drm_WARN(T,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(T,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(T,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(T,
      ...)
      )
      ...>
      }
      
      @rule2@
      identifier func, T;
      @@
      func(struct drm_device *T,...) {
      <...
      (
      -WARN(
      +drm_WARN(T,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(T,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(T,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(T,
      ...)
      )
      ...>
      }
      
      @rule3@
      identifier func, T;
      @@
      func(...) {
      ...
      struct drm_i915_private *T = ...;
      <+...
      (
      -WARN(
      +drm_WARN(&T->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->drm,
      ...)
      )
      ...+>
      }
      
      @rule4@
      identifier func, T;
      @@
      func(struct drm_i915_private *T,...) {
      <+...
      (
      -WARN(
      +drm_WARN(&T->drm,
      ...)
      |
      -WARN_ON(
      +drm_WARN_ON(&T->drm,
      ...)
      |
      -WARN_ONCE(
      +drm_WARN_ONCE(&T->drm,
      ...)
      |
      -WARN_ON_ONCE(
      +drm_WARN_ON_ONCE(&T->drm,
      ...)
      )
      ...+>
      }
      Signed-off-by: NPankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200128181603.27767-10-pankaj.laxminarayan.bharadiya@intel.com
      99bc73ec
  17. 27 1月, 2020 1 次提交
  18. 14 1月, 2020 1 次提交
  19. 01 11月, 2019 1 次提交
  20. 30 10月, 2019 1 次提交
  21. 26 10月, 2019 1 次提交
  22. 09 10月, 2019 1 次提交