1. 12 10月, 2020 3 次提交
  2. 01 10月, 2020 1 次提交
  3. 18 8月, 2020 1 次提交
    • J
      drm/i915/display: Implement HOBL · 81619f4a
      José Roberto de Souza 提交于
      Hours Of Battery Life is a new GEN12+ power-saving feature that allows
      supported motherboards to use a special voltage swing table for eDP
      panels that uses less power.
      
      So here if supported by HW, OEM will set it in VBT and i915 will try
      to train link with HOBL vswing table if link training fails it fall
      back to the original table.
      
      intel_ddi_dp_preemph_max() was optimized to only check the HOBL flag
      instead of do something like is done in intel_ddi_dp_voltage_max()
      because it is only called after the first entry of the voltage swing
      table was loaded so the HOBL flag is valid at that point.
      
      v3:
      - removed a few parameters of icl_ddi_combo_vswing_program() that
      can be taken from encoder
      
      v4:
      - using the HOBL vswing table until training fails completely (Ville)
      
      v5:
      - not reducing lane or link rate when link training fails with HOBL
      active
      - duplicated the HOBL voltage swing entry to match DP spec requirement
      
      v6:
      - removed the optional VS 3 & pre-emp 0 from HOBL table
      - changed from u8:1 to bool to store hobl_failed/active
      
      BSpec: 49291
      BSpec: 49399
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Animesh Manna <animesh.manna@intel.com>
      Cc: Manasi Navare <manasi.d.navare@intel.com>
      Signed-off-by: NJosé Roberto de Souza <jose.souza@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200715175637.33763-1-jose.souza@intel.comSigned-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      81619f4a
  4. 14 7月, 2020 1 次提交
  5. 26 6月, 2020 1 次提交
  6. 03 6月, 2020 3 次提交
  7. 08 4月, 2020 1 次提交
  8. 11 2月, 2020 1 次提交
  9. 07 8月, 2019 1 次提交
  10. 17 6月, 2019 1 次提交
  11. 30 4月, 2019 1 次提交
  12. 08 4月, 2019 1 次提交
  13. 17 1月, 2019 1 次提交
  14. 18 10月, 2018 1 次提交
  15. 10 10月, 2018 1 次提交
  16. 26 7月, 2018 1 次提交
  17. 24 7月, 2018 2 次提交
  18. 15 6月, 2018 1 次提交
  19. 26 4月, 2018 1 次提交
  20. 07 3月, 2018 2 次提交
  21. 01 2月, 2018 1 次提交
  22. 22 1月, 2018 1 次提交
  23. 19 7月, 2017 1 次提交
  24. 14 4月, 2017 1 次提交
    • M
      drm/i915: Implement Link Rate fallback on Link training failure · 9301397a
      Manasi Navare 提交于
      If link training at a link rate optimal for a particular
      mode fails during modeset's atomic commit phase, then we
      let the modeset complete and then retry. We save the link rate
      value at which link training failed, update the link status property
      to "BAD" and use a lower link rate to prune the modes. It will redo
      the modeset on the current mode at lower link rate or if the current
      mode gets pruned due to lower link constraints then, it will send a
      hotplug uevent for userspace to handle it.
      
      This is also required to pass DP CTS tests 4.3.1.3, 4.3.1.4,
      4.3.1.6.
      
      This patch is a resend of the original commit id (233ce881
      "drm/i915: Implement Link Rate fallback on Link training failure")
      which got reverted in this commit id (afc1ebf4 Revert
      "drm/i915: Implement Link Rate fallback on Link training failure")
      due to CI failures.
      
      After investigating the CI failures it was found that these
      were essentially the failures which were always there but hidden because
      they used to be DRM_DEBUG_KMS messages for link failures so never got
      caught by CI. But now this patch actually throws DRM_ERROR if the link
      training fails at RBR and 1 lane. So it caught these link train failures.
      
      There were two failures:
      1. On SKL 6700k this was because the machine in CI lab is a SKL desktop
      without eDP on Port A. But our VBT initialization code in the driver writes
      VBT defaults in a way that it always sets DP flag on Port A and this does
      not get cleared after parsing the VBT outputs. This has been fixed in
      commit id (bb1d1329 "drm/i915/vbt: split out defaults that are set
      when there is no VBT) and (66578857 "drm/i915/vbt: don't propagate
      errors from intel_bios_init())
      
      2. On ILK-650 desktop - This was happening because of a bad monitor desktop
      combination. I switched the monitor in the CI lab and that helped get rid
      of the link failures on ILK system.
      
      v10:
      * Rebase on drm-tip and resend after revert
      v9:
      * Use the trimmed max values of link rate/lane count based on
      link train fallback (Daniel Vetter)
      v8:
      * Set link_status to BAD first and then call mode_valid (Jani Nikula)
      v7:
      Remove the redundant variable in previous patch itself
      v6:
      * Obtain link rate index from fallback_link_rate using
      the helper intel_dp_link_rate_index (Jani Nikula)
      * Include fallback within intel_dp_start_link_train (Jani Nikula)
      v5:
      * Move set link status to drm core (Daniel Vetter, Jani Nikula)
      v4:
      * Add fallback support for non DDI platforms too
      * Set connector->link status inside set_link_status function
      (Jani Nikula)
      v3:
      * Set link status property to BAd unconditionally (Jani Nikula)
      * Dont use two separate variables link_train_failed and link_status
      to indicate same thing (Jani Nikula)
      v2:
      * Squashed a few patches (Jani Nikula)
      Acked-by: NTony Cheng <tony.cheng@amd.com>
      Acked-by: NHarry Wentland <Harry.wentland@amd.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Signed-off-by: NManasi Navare <manasi.d.navare@intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/16ca48b1e74c618929245e9a085b9e3483c3a16d.1491485983.git.jani.nikula@intel.com
      9301397a
  25. 06 4月, 2017 1 次提交
    • J
      drm/i915/dp: generate and cache sink rate array for all DP, not just eDP 1.4 · 68f357cb
      Jani Nikula 提交于
      There is some conflation related to sink rates, making this change more
      complicated than it would otherwise have to be. There are three changes
      here that are rather difficult to split up:
      
      1) Use the intel_dp->sink_rates array for all DP, not just eDP 1.4. We
         initialize it from DPCD on eDP 1.4 like before, but generate it based
         on DP_MAX_LINK_RATE on others. This reduces code complexity when we
         need to use the sink rates; they are all always in the sink_rates
         array.
      
      2) Update the sink rate array whenever we read DPCD, and use the
         information from there. This increases code readability when we need
         the sink rates.
      
      3) Disentangle fallback rate limiting from sink rates. In the code, the
         max rate is a dynamic property of the *link*, not of the *sink*. Do
         the limiting after intersecting the source and sink rates, which are
         static properties of the devices.
      
      This paves the way for follow-up refactoring that I've refrained from
      doing here to keep this change as simple as it possibly can.
      
      v2: introduce use_rate_select and handle non-confirming eDP (Ville)
      
      v3: don't clobber cached eDP rates on short pulse (Ville)
      
      Cc: Manasi Navare <manasi.d.navare@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NManasi Navare <manasi.d.navare@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/071bad76467f8ab2e73f3f61ad52d5a468004c71.1490712890.git.jani.nikula@intel.com
      68f357cb
  26. 02 3月, 2017 1 次提交
  27. 01 3月, 2017 1 次提交
    • M
      drm/i915: Implement Link Rate fallback on Link training failure · 233ce881
      Manasi Navare 提交于
      If link training at a link rate optimal for a particular
      mode fails during modeset's atomic commit phase, then we
      let the modeset complete and then retry. We save the link rate
      value at which link training failed, update the link status property
      to "BAD" and use a lower link rate to prune the modes. It will redo
      the modeset on the current mode at lower link rate or if the current
      mode gets pruned due to lower link constraints then, it will send a
      hotplug uevent for userspace to handle it.
      
      This is also required to pass DP CTS tests 4.3.1.3, 4.3.1.4,
      4.3.1.6.
      
      v9:
      * Use the trimmed max values of link rate/lane count based on
      link train fallback (Daniel Vetter)
      v8:
      * Set link_status to BAD first and then call mode_valid (Jani Nikula)
      v7:
      Remove the redundant variable in previous patch itself
      v6:
      * Obtain link rate index from fallback_link_rate using
      the helper intel_dp_link_rate_index (Jani Nikula)
      * Include fallback within intel_dp_start_link_train (Jani Nikula)
      v5:
      * Move set link status to drm core (Daniel Vetter, Jani Nikula)
      v4:
      * Add fallback support for non DDI platforms too
      * Set connector->link status inside set_link_status function
      (Jani Nikula)
      v3:
      * Set link status property to BAd unconditionally (Jani Nikula)
      * Dont use two separate variables link_train_failed and link_status
      to indicate same thing (Jani Nikula)
      v2:
      * Squashed a few patches (Jani Nikula)
      Acked-by: NTony Cheng <tony.cheng@amd.com>
      Acked-by: NHarry Wentland <Harry.wentland@amd.com>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Signed-off-by: NManasi Navare <manasi.d.navare@intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/d796cc0c2814d668a47ef43c464f9a4089d46d64.1481883920.git.jani.nikula@intel.com
      233ce881
  28. 26 9月, 2016 1 次提交
  29. 10 9月, 2016 3 次提交
  30. 24 8月, 2016 1 次提交
  31. 22 6月, 2016 1 次提交
  32. 20 6月, 2016 1 次提交