1. 28 Apr, 2016 15 commits
  2. 27 Apr, 2016 5 commits
  3. 26 Apr, 2016 5 commits
  4. 25 Apr, 2016 9 commits
  5. 24 Apr, 2016 3 commits
  6. 22 Apr, 2016 3 commits
    • Ville Syrjälä's avatar
      drm/i915: Make RPS EI/thresholds multiple of 25 on SNB-BDW · 8a292d01
      Ville Syrjälä authored
      Somehow my SNB GT1 (Dell XPS 8300) gets very unhappy around
      GPU hangs if the RPS EI/thresholds aren't suitably aligned.
      It seems like scheduling/timer interupts stop working somehow
      and things get stuck eg. in usleep_range().
      
      I bisected the problem down to
      commit 8a586437 ("drm/i915/skl: Restructured the gen6_set_rps_thresholds function")
      I observed that before all the values were at least multiples of 25,
      but afterwards they are not. And rounding things up to the next multiple
      of 25 does seem to help, so lets' do that. I also tried roundup(..., 5)
      but that wasn't sufficient. Also I have no idea if we might need this sort of
      thing on gen9+ as well.
      
      These are the original EI/thresholds:
       LOW_POWER
        GEN6_RP_UP_EI          12500
        GEN6_RP_UP_THRESHOLD   11800
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 21250
       BETWEEN
        GEN6_RP_UP_EI          10250
        GEN6_RP_UP_THRESHOLD    9225
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 18750
       HIGH_POWER
        GEN6_RP_UP_EI           8000
        GEN6_RP_UP_THRESHOLD    6800
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 15000
      
      These are after 8a586437:
       LOW_POWER
        GEN6_RP_UP_EI          12500
        GEN6_RP_UP_THRESHOLD   11875
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 21250
       BETWEEN
        GEN6_RP_UP_EI          10156
        GEN6_RP_UP_THRESHOLD    9140
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 18750
       HIGH_POWER
        GEN6_RP_UP_EI           7812
        GEN6_RP_UP_THRESHOLD    6640
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 15000
      
      And these are what we have after this patch:
       LOW_POWER
        GEN6_RP_UP_EI          12500
        GEN6_RP_UP_THRESHOLD   11875
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 21250
       BETWEEN
        GEN6_RP_UP_EI          10175
        GEN6_RP_UP_THRESHOLD    9150
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 18750
       HIGH_POWER
        GEN6_RP_UP_EI           7825
        GEN6_RP_UP_THRESHOLD    6650
        GEN6_RP_DOWN_EI        25000
        GEN6_RP_DOWN_THRESHOLD 15000
      
      Cc: stable@vger.kernel.org
      Cc: Akash Goel <akash.goel@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Testcase: igt/kms_pipe_crc_basic/hang-read-crc-pipe-B
      Fixes: 8a586437 ("drm/i915/skl: Restructured the gen6_set_rps_thresholds function")
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1461159836-9108-1-git-send-email-ville.syrjala@linux.intel.comAcked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarPatrik Jakobsson <patrik.jakobsson@linux.intel.com>
      8a292d01
    • Shashank Sharma's avatar
      drm/i915: Fake HDMI live status · 4f4a8185
      Shashank Sharma authored
      This patch does the following:
      - Fakes live status of HDMI as connected (even if that's not).
        While testing certain (monitor + cable) combinations with
        various intel  platforms, it seems that live status register
        doesn't work reliably on some older devices. So limit the
        live_status check for HDMI detection, only for platforms
        from gen7 onwards.
      
      V2: restrict faking live_status to certain platforms
      V3: (Ville)
         - keep the debug message for !live_status case
         - fix indentation of comment
         - remove "warning" from the debug message
      
          (Jani)
         - Change format of fix details in the commit message
      
      Fixes: 237ed86c ("drm/i915: Check live status before reading edid")
      Cc: stable@vger.kernel.org # v4.4
      Suggested-by: default avatarVille Syrjala <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarShashank Sharma <shashank.sharma@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1461237606-16491-1-git-send-email-shashank.sharma@intel.comSigned-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      4f4a8185
    • Imre Deak's avatar
      drm/i915/bxt: Force reprogramming a PHY with invalid HW state · 47baf2a5
      Imre Deak authored
      It's possible that BIOS enables PHY0, but it programmes only the first
      channel on it. Since we program the PHYs only during driver loading this
      is an incorrect configuration from the driver's point of view, since we
      may use both channels eventually. Detect this scenario and force
      reprogramming the PHY in this case.
      
      The actual scenario for me was that the lane optimization for the second
      channel in PHY0 was not setup by BIOS and so a state verification
      warning was triggered. Everything else was setup properly.
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1461174366-16758-4-git-send-email-imre.deak@intel.com
      47baf2a5