1. 12 11月, 2012 6 次提交
    • J
      drm/i915: implement WaDisableL3CacheAging on VLV · d0cf5ead
      Jesse Barnes 提交于
      Needs to be set on every context restore as well, so set it as part of
      the initial state so we can save/restore it.  Note this removes the IVB
      workaround value from VLV and uses the default value, just adding in the
      L3 cache aging disable bit, since the IVB value is wrong for VLV.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Reviewed-by: NAntti Koskipää <antti.koskipaa@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d0cf5ead
    • D
      drm/i915: kill pch_init_clock_gating indirection · 3107bd48
      Daniel Vetter 提交于
      Now that we no longer pretend to have flexibility in matching any
      north display block with any pch, we can ditch this.
      
      v2: Fix the embarassing rebase fail that Paulo Zanoni spotted.
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      3107bd48
    • D
      drm/i915: implement WADP0ClockGatingDisable · ce40141f
      Daniel Vetter 提交于
      Found in Bspec vol4h South Display Engine Registers [CPT, PPT],
      section "5.3.1  TRANS_CHICKEN_1—Transcoder Chicken Bits 1"
      
      v2: Make it compile.
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      ce40141f
    • D
      drm/i915: CPT+ pch transcoder workaround · 23670b32
      Daniel Vetter 提交于
      We need to set the timing override chicken bit after fdi link training
      has completed and before we enable the transcoder. We also have to
      clear that bit again after disabling the pch transcoder.
      
      See "Graphics BSpec: vol4g North Display Engine Registers [IVB],
      Display Mode Set Sequence" and "Graphics BSpec: vol4h South Display
      Engine Registers [CPT, PPT], South Display Engine Transcoder and FDI
      Control, Transcoder Debug and DFT, TRANS_CHICKEN_2" bit 31:
      
      "Workaround : Enable the override prior to enabling the transcoder.
      Disable the override after disabling the transcoder."
      
      While at it, use the _PIPE macro for the other TRANS_DP register.
      
      v2: Keep the w/a as-is, but kill the original (but wrongly placed)
      workaround introduced in
      
      commit 3bcf603f
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Wed Jul 27 11:51:40 2011 -0700
      
          drm/i915: apply timing generator bug workaround on CPT and PPT
      
      and
      
      commit d4270e57
      Author: Jesse Barnes <jbarnes@virtuousgeek.org>
      Date:   Tue Oct 11 10:43:02 2011 -0700
      
          drm/i915: export a CPT mode set verification function
      
      Note that this old code has unconditionally set the w/a, which might
      explain why fdi link training sometimes silently fails, and especially
      why the auto-train did not seem to work properly.
      
      v3: Paulo Zanoni pointed out that this workaround is also required on
      the LPT PCH. And Arthur Ranyan confirmed that this workaround is
      requierd for all ports on the pch, not just DP: The important part
      is that the bit is set whenever the pch transcoder is enabled, and
      that it is _not_ set while the fdi link is trained. It is also
      important that the pch transcoder is fully disabled, i.e. we have to
      wait for bit 30 to clear before clearing the w/a bit.
      
      Hence move to workaround into enable/disable_transcoder, where the pch
      transcoder gets enabled/disabled.
      
      v4: Whitespace changes dropped.
      
      v5: Don't run the w/a on IBX, we only need it on CPT/PPT and LPT.
      
      v6:
      - resolve conflicts with Paulo's big hsw vga rework
      - s/!IBX/CPT since hsw paths are now all separate, and Paulo's patch
        to implement the equivalent w/a for LPT is already merged.
      
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Paulo Zanoni <przanoni@gmail.com>
      Cc: Arthur Ranyan <arthur.j.runyan@intel.com>
      Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> (v5)
      Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> (v5)
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      23670b32
    • Z
      drm/i915: Fix HSW power well control state read · 263b30d4
      Zhenyu Wang 提交于
      Fix power well control state by reading real register offset.
      Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      263b30d4
    • D
      drm/i915: implement WaDisableRenderCachePipelinedFlush · 4358a374
      Daniel Vetter 提交于
      Comment says for eaglelake/cantiga, but it's listed in the ilk table,
      too. So apply it to both.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      4358a374
  2. 20 10月, 2012 4 次提交
  3. 18 10月, 2012 2 次提交
  4. 16 10月, 2012 2 次提交
    • B
      drm/i915: Workaround to bump rc6 voltage to 450 · 31643d54
      Ben Widawsky 提交于
      BIOS should be setting the minimum voltage for rc6 to be 450mV. Old or
      buggy BIOSen may not be doing this, so we correct it for them. Ideally
      customers should update the BIOS as only it would know the optimal
      values for the platform, so we leave that fact as a DRM_ERROR for the
      user to see.
      
      Unfortunately this isn't fixing any of the issues it was targeted to
      fix, but it is documented that we must do it.
      
      CC: Jesse Barnes <jbarnes@virtuousgeek.org>
      CC: Matt Turner <mattst88@gmail.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      [danvet: bikeshedded loglevel of the "your bios is broken message" to
      debug.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      31643d54
    • B
      drm/i915: Extract PCU communication · 42c0526c
      Ben Widawsky 提交于
      There is a special mechanism for communicating with the PCU already
      being used for the ring frequency stuff. As we'll be needing this for
      other commands, extract it now to make future code less error prone and
      the current code more reusable.
      
      I'm not entirely sure if this code matches 1:1 with the previous code
      behaviorally. Functionally however, it should be the same.
      
      CC: Jesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      [danvet: Fixup compile fail reported by Wu Fengguang.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      42c0526c
  5. 12 10月, 2012 1 次提交
  6. 11 10月, 2012 1 次提交
  7. 08 10月, 2012 3 次提交
  8. 05 10月, 2012 3 次提交
  9. 26 9月, 2012 1 次提交
  10. 20 9月, 2012 2 次提交
  11. 11 9月, 2012 1 次提交
  12. 03 9月, 2012 7 次提交
  13. 27 8月, 2012 1 次提交
  14. 24 8月, 2012 1 次提交
  15. 21 8月, 2012 1 次提交
    • D
      drm/i915: use hsw rps tuning values everywhere on gen6+ · 1ee9ae32
      Daniel Vetter 提交于
      James Bottomley reported [1] a massive power regression, due to the
      enabling of semaphores by default in 3.5. A workaround for him is to
      again disable semaphores. And indeed, his system has a very hard time
      to enter rc6 with semaphores enabled.
      
      Ben Widawsky run around with a kill-a-watt a lot and noticed:
      - There are indeed a few rare systems that seem to have a hard time
        entering rc6 when desktop-idle.
      - One machine, The Indestructible Toshiba regressed in this behaviour
        between 3.5 and 3.6 in a merge commit! So rc6 behaviour with the
        current setting seems to be highly timing dependent and not robust
        at all.
      - The behaviour James reported wrt semaphores seems to be a freak
        timing thing that only happens on his specific machine, confirming
        that enabling semaphores shouldn't reduce rc6 residency.
      
      Now furthermore the Google ChromeOS guys reported [2] a while ago that
      at least on some machines a simply a blinking cursor can keep the gpu
      turbo at the highest frequency. This is because the current rps limits
      used on snb/ivb are highly asymmetric.
      
      On the theory that gpu turbo and rc6 tuning values are related, we've
      tried whether the much saner looking (since much less asymmetric) rps
      tuning values used for hsw would also help entering rc6 more robustly.
      
      And it seems to mostly work, and we don't really have the resources to
      through-roughly tune things in any better way: The values from the
      ChromeOS ppl seem to fare a bit worse for James' machine, so I guess
      we better stick with something vpg (the gpu hw/windows group)
      provided, hoping that they've done their jobs.
      
      Reference[1]: http://lists.freedesktop.org/archives/dri-devel/2012-July/025675.html
      Reference[2]: http://lists.freedesktop.org/archives/intel-gfx/2012-July/018692.html
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53393Tested-by: NBen Widawsky <ben@bwidawsk.net>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1ee9ae32
  16. 10 8月, 2012 4 次提交