1. 11 Dec, 2014 2 commits
    • Imre Deak's avatar
      drm/i915: vlv: fix IRQ masking when uninstalling interrupts · c352d1ba
      Imre Deak authored
      irq_mask should include all IRQ bits that we want to mask, but atm we
      set it incorrectly to the inverse of this. If the mask is used
      subsequently to enable/disable some IRQ bits, we may unintentionally
      unmask unrelated IRQs. I can't see any way that this can lead to a real
      problem in the current -nightly code, since the first place the mask
      will be used next (after a suspend/resume cycle) is in
      valleyview_irq_postinstall(), but the mask is reset there to its proper
      value.
      
      This causes a problem in the upstream kernel though, where - due to another
      issue - the mask is used in the above way to disable only the display IRQs.
      This other issue is fixed by:
      
      commit 950eabaf
      Author: Imre Deak <imre.deak@intel.com>
      Date:   Mon Sep 8 15:21:09 2014 +0300
      
          drm/i915: vlv: fix display IRQ enable/disable
      
      Interestingly, even with the above two bugs, we shouldn't in theory have
      any real problems (arguably a famous last sentence:). That's because
      even if we unmask something unintentionally via the VLV_IMR/VLV_IER
      register the master IRQ masking bit in VLV_MASTER_IER is still set and
      should prevent all i915 interrupts. According to my testing on an ASUS
      T100 with DSI output this isn't the case at least with the
      MIPIA_INTERRUPT. Leaving this one unmasked in IMR/IER, while having
      VLV_MASTER_IER set to 0 may lead to a lockup during system suspend as
      shown in the bugzilla ticket below. This fix should get rid of the
      problem reported there in upstream and older kernels.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85920
      Cc: stable@vger.kernel.org (v3.15+)
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      c352d1ba
    • Jesse Barnes's avatar
      drm/i915: save/restore GMBUS freq across suspend/resume on gen4 · 9f49c376
      Jesse Barnes authored
      Should probably just init this in the GMbus code all the time, based on
      the cdclk and HPLL like we do on newer platforms.  Ville has code for
      that in a rework branch, but until then we can fix this bug fairly
      easily.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76301Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Tested-by: default avatarNikolay <mar.kolya@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      9f49c376
  2. 10 Dec, 2014 4 commits
  3. 08 Dec, 2014 1 commit
  4. 05 Dec, 2014 3 commits
  5. 03 Dec, 2014 18 commits
  6. 02 Dec, 2014 12 commits