1. 15 8月, 2015 4 次提交
  2. 14 8月, 2015 2 次提交
  3. 05 8月, 2015 2 次提交
    • A
      drm/i915/gen9: Removed byte swapping for csr firmware · a7f749f9
      Animesh Manna 提交于
      This patch contains the changes to remove the byte
      swapping logic introduced with old dmc firmware.
      While debugging PC10 entry issue for skylake found
      with latest dmc firmware version 1.18 without byte
      swapping dmc is working fine and able to enter PC10.
      
      Note that apparently this was changed with dmc version 1.0 and earlier
      ones indeed are byteswapped like this ...
      
      v1: Initial version.
      
      v2: Corrected firmware size during memcpy(). (Suggested by Sunil)
      
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Cc: Imre Deak <imre.deak@intel.com>
      Cc: Sunil Kamath <sunil.kamath@intel.com>
      Signed-off-by: NAnimesh Manna <animesh.manna@intel.com>
      Signed-off-by: NVathsala Nagaraju <vathsala.nagaraju@intel.com>
      Reviewed-by: NA.Sunil Kamath <sunil.kamath@intel.com>
      [danvet: Add note that this only holds for released dmc firmware.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a7f749f9
    • P
      drm/i915: special-case dirtyfb for frontbuffer tracking · 74b4ea1e
      Paulo Zanoni 提交于
      First, an introduction. We currently have two types of GTT mmaps: the
      "normal" old mmap, and the WC mmap. For frontbuffer-related features
      that have automatic hardware tracking, only the non-WC mmap writes are
      detected by the hardware. Since inside the Kernel both are treated as
      ORIGIN_GTT, any features ignoring ORIGIN_GTT because of the hardware
      tracking are destined to fail.
      
      One of the special rules defined for the WC mmaps is that the user
      should call the dirtyfb IOCTL after he is done using the pointers, so
      that results in an intel_fb_obj_flush() call. The problem is that the
      dirtyfb is passing ORIGIN_GTT, so it is being ignored by FBC - even
      though the hardware tracking is not detecing the WC mmap operations.
      So in order to fix that without having to give up the automatic
      hardware tracking for GTT mmaps we transform the flush operation from
      dirtyfb into a special operation: ORIGIN_DIRTYFB.
      
      This commit fixes all the kms_frontbuffer_tracking subtests that
      contain "fbc" and "mmap-wc" in their names and are currently failing
      (for a total of 16 subtests).
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      74b4ea1e
  4. 31 7月, 2015 1 次提交
  5. 29 7月, 2015 1 次提交
  6. 28 7月, 2015 1 次提交
    • D
      drm/i915: Fake AGP is dead · 3b9a02e8
      Daniel Vetter 提交于
      Remove the leftovers, yay!
      
      AGP for i915 kms died long ago with
      
      commit 3bb6ce66
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Wed Nov 13 22:14:16 2013 +0100
      
          drm/i915: Kill legeacy AGP for gen3 kms
      
      and with ums now gone to there's really no users any more.
      
      Note that device_is_agp is only called when DRIVER_USE_AGP is set and
      since we've unconditionally cleared that since a while there are
      really no users left for i915_driver_device_is_agp.
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      3b9a02e8
  7. 27 7月, 2015 2 次提交
  8. 22 7月, 2015 1 次提交
  9. 21 7月, 2015 2 次提交
  10. 18 7月, 2015 1 次提交
  11. 15 7月, 2015 3 次提交
  12. 14 7月, 2015 4 次提交
    • M
      drm/i915: Convert resume to atomic. · 043e9bda
      Maarten Lankhorst 提交于
      Instead of all the ad-hoc updating, duplicate the old state first
      before reading out the hw state, then restore it.
      
      intel_display_resume is a new function that duplicates the sw state,
      then reads out the hw state, and commits the old state.
      
      intel_display_setup_hw_state now only reads out the atomic state.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90396Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: NDaniel Stone <daniels@collabora.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      043e9bda
    • I
      drm/i915: remove unused has_dma_mapping flag · 5ec5b516
      Imre Deak 提交于
      After the previous patch this flag will check always clear, as it's
      never set for shmem backed and userptr objects, so we can remove it.
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      [danvet: Yeah this isn't really fixes but it's a nice cleanup to
      clarify the code but not really worth the hassle of backmerging. So
      just add to -fixes, we're still early in -rc.]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      5ec5b516
    • D
      drm/i915: Fix missing return warning for !CONFIG_DEBUGFS · 101057fa
      Daniel Vetter 提交于
      This broken code was introduced in
      
      commit aa7471d2
      Author: Jani Nikula <jani.nikula@intel.com>
      Date:   Wed Apr 1 11:15:21 2015 +0300
      
          drm/i915: add i915 specific connector debugfs file for DPCD
      
      v2: Drop hunk that accidentally crept in.
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Cc: Bob Paauwe <bob.j.paauwe@intel.com>
      Cc: François Valenduc <francoisvalenduc@gmail.com>
      Reported-by: NFrançois Valenduc <francoisvalenduc@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      101057fa
    • C
      drm/i915: Store device pointer in contexts for late tracepoint usafe · 9ea4feec
      Chris Wilson 提交于
      [ 1572.417121] BUG: unable to handle kernel NULL pointer dereference at           (null)
      [ 1572.421010] IP: [<ffffffffa00b2514>] ftrace_raw_event_i915_context+0x5d/0x70 [i915]
      [ 1572.424970] PGD 1766a3067 PUD 1767a2067 PMD 0
      [ 1572.428892] Oops: 0000 [#1] SMP
      [ 1572.432787] Modules linked in: ipv6 dm_mod iTCO_wdt iTCO_vendor_support snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_timer snd soundcore serio_raw pcspkr lpc_ich i2c_i801 mfd_core battery ac acpi_cpufreq i915 button video drm_kms_helper drm
      [ 1572.441720] CPU: 2 PID: 18853 Comm: kworker/u8:0 Not tainted 4.0.0_kcloud_3f0360_20150429+ #588
      [ 1572.446298] Workqueue: i915 i915_gem_retire_work_handler [i915]
      [ 1572.450876] task: ffff880002f428f0 ti: ffff880035724000 task.ti: ffff880035724000
      [ 1572.455557] RIP: 0010:[<ffffffffa00b2514>]  [<ffffffffa00b2514>] ftrace_raw_event_i915_context+0x5d/0x70 [i915]
      [ 1572.460423] RSP: 0018:ffff880035727ce8  EFLAGS: 00010286
      [ 1572.465262] RAX: ffff880073f1643c RBX: ffff880002da9058 RCX: ffff880073e5db40
      [ 1572.470179] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880035727ce8
      [ 1572.475107] RBP: ffff88007bb11a00 R08: 0000000000000000 R09: 0000000000000000
      [ 1572.480034] R10: 0000000000362200 R11: 0000000000000008 R12: 0000000000000000
      [ 1572.484952] R13: ffff880035727d78 R14: ffff880002dc1c98 R15: ffff880002dc1dc8
      [ 1572.489886] FS:  0000000000000000(0000) GS:ffff88017fd00000(0000) knlGS:0000000000000000
      [ 1572.494883] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [ 1572.499859] CR2: 0000000000000000 CR3: 000000017572a000 CR4: 00000000001006e0
      [ 1572.504842] Stack:
      [ 1572.509834]  ffff88017b0090c0 ffff880073f16438 ffff880002da9058 ffff880073f1643c
      [ 1572.514904]  0000000000000246 ffff880100000000 ffff88007bb11a00 ffff880002ddeb10
      [ 1572.519985]  ffff8801759f79c0 ffffffffa0092ff0 0000000000000000 ffff88007bb11a00
      [ 1572.525049] Call Trace:
      [ 1572.530093]  [<ffffffffa0092ff0>] ? i915_gem_context_free+0xa8/0xc1 [i915]
      [ 1572.535227]  [<ffffffffa009b969>] ? i915_gem_request_free+0x4e/0x50 [i915]
      [ 1572.540347]  [<ffffffffa00b5533>] ? intel_execlists_retire_requests+0x14c/0x159 [i915]
      [ 1572.545500]  [<ffffffffa009d9ea>] ? i915_gem_retire_requests+0x9d/0xeb [i915]
      [ 1572.550664]  [<ffffffffa009dd8c>] ? i915_gem_retire_work_handler+0x4c/0x61 [i915]
      [ 1572.555825]  [<ffffffff8104ca7f>] ? process_one_work+0x1b2/0x31d
      [ 1572.560951]  [<ffffffff8104d278>] ? worker_thread+0x24d/0x339
      [ 1572.566033]  [<ffffffff8104d02b>] ? cancel_delayed_work_sync+0xa/0xa
      [ 1572.571140]  [<ffffffff81050b25>] ? kthread+0xce/0xd6
      [ 1572.576191]  [<ffffffff81050a57>] ? kthread_create_on_node+0x162/0x162
      [ 1572.581228]  [<ffffffff8179b3c8>] ? ret_from_fork+0x58/0x90
      [ 1572.586259]  [<ffffffff81050a57>] ? kthread_create_on_node+0x162/0x162
      [ 1572.591318] Code: de 48 89 e7 e8 09 4d 00 e1 48 85 c0 74 27 48 89 68 10 48 8b 55 38 48 89 e7 48 89 50 18 48 8b 55 10 48 8b 12 48 8b 12 48 8b 52 38 <8b> 12 89 50 08 e8 95 4d 00 e1 48 83 c4 30 5b 5d 41 5c c3 41 55
      [ 1572.596981] RIP  [<ffffffffa00b2514>] ftrace_raw_event_i915_context+0x5d/0x70 [i915]
      [ 1572.602464]  RSP <ffff880035727ce8>
      [ 1572.607911] CR2: 0000000000000000
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90112#c23Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      9ea4feec
  13. 08 7月, 2015 4 次提交
  14. 07 7月, 2015 2 次提交
  15. 06 7月, 2015 5 次提交
  16. 03 7月, 2015 1 次提交
  17. 30 6月, 2015 2 次提交
  18. 29 6月, 2015 2 次提交
    • V
      drm/i915: CHV DDR DVFS support and another watermark rewrite · 262cd2e1
      Ville Syrjälä 提交于
      Turns out the VLV/CHV system agent doesn't understand memory
      latencies, so trying to rely on the PND deadline mechanism is not
      going to fly especially when DDR DVFS is enabled. Currently we try to
      avoid the problems by lying to the system agent about the deadlines
      and setting the FIFO watermarks to 8 cachelines. This however leads to
      bad memory self refresh residency.
      
      So in order to satosfy everyone we'll just give up on the deadline
      scheme and program the watermarks old school based on the worst case
      memory latency.
      
      I've modelled this a bit on the ILK+ approach where we compute multiple
      sets of watermarks for each pipe (PM2,PM5,DDR DVFS) and when merge thet
      appropriate one later with the watermarks from other pipes. There isn't
      too much to merge actually since each pipe has a totally independent
      FIFO (well apart from the mess with the partially shared DSPARB
      registers), but still decopuling the pipes from each other seems like a
      good idea.
      
      Eventually we'll want to perform the watermark update in two phases
      around the plane update to avoid underruns due to the single buffered
      watermark registers. But that's still in limbo for ILK+ too, so I've not
      gone that far yet for VLV/CHV either.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NClint Taylor <Clinton.A.Taylor@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      262cd2e1
    • V
      drm/i915: Read wm values from hardware at init on CHV · 6eb1a681
      Ville Syrjälä 提交于
      Read out the current watermark settings from the hardware at driver init
      time. This will allow us to compare the newly calculated values against
      the currrent ones and potentially avoid needless WM updates.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NClint Taylor <Clinton.A.Taylor@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      6eb1a681