1. 06 10月, 2017 4 次提交
  2. 05 10月, 2017 21 次提交
  3. 04 10月, 2017 13 次提交
  4. 03 10月, 2017 2 次提交
    • I
      drm/i915: Fix DDI PHY init if it was already on · e19c1eb8
      Imre Deak 提交于
      The common lane power down flag of a DPIO PHY has a funky semantic:
      after the initial enabling of the PHY (so from a disabled state) this
      flag will be clear. It will be set only after the PHY will be used for
      the first time (for instance due to enabling the corresponding pipe) and
      then become unused (due to disabling the pipe). During the initial PHY
      enablement we don't know which of the above phases we are in, so move
      the check for the flag where this is known, the HW readout code. This is
      where the rest of lane power down status checks are done anyway.
      
      This fixes at least a problem on GLK where after module reloading, the
      common lane power down flag of PHY1 is set, but the PHY is actually
      powered-on and properly set up. The GRC readout code for other PHYs will
      hence think that PHY1 is not powered initially and disable it after the
      GRC readout. This will cause the AUX power well related to PHY1 to get
      disabled in a stuck state, timing out when we try to enable it later.
      
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Fixes: e93da0a0 ("drm/i915/bxt: Sanitiy check the PHY lane power down status")
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102777Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171002135307.26117-1-imre.deak@intel.com
      e19c1eb8
    • I
      drm/i915/glk, cnl: Implement WaDisableScalarClockGating · ed69cd40
      Imre Deak 提交于
      On GLK and CNL enabling a pipe with its pipe scaler enabled will result
      in a FIFO underrun. This happens only once after driver loading or
      system/runtime resume, more specifically after power well 1 gets
      enabled; subsequent modesets seem to be free of underruns. The BSpec
      workaround for this is to disable the pipe scaler clock gating for the
      duration of modeset. Based on my tests disabling clock gating must be
      done before enabling pipe scaling and we can re-enable it after the pipe
      is enabled and one vblank has passed.
      
      For consistency I also checked if plane scaling would cause the same
      problem, but that doesn't seem to trigger this problem.
      
      The patch is based on an earlier version from Ander.
      
      v2 (Rodrigo):
      - Set also CLKGATE_DIS_PSL bits 8 and 9.
      - Add also the BSpec workaround ID.
      
      Cc: Ander Conselvan de Oliveira <conselvan2@gmail.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100302Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171002075557.32615-1-imre.deak@intel.com
      ed69cd40