1. 01 6月, 2017 2 次提交
  2. 29 5月, 2017 5 次提交
  3. 26 5月, 2017 8 次提交
    • C
      drm/i915: Keep the forcewake timer alive for 1ms past the most recent use · c9e0c6da
      Chris Wilson 提交于
      Currently the timer is armed for 1ms after the first use and is killed
      immediately, dropping the forcewake as early as possible. However, for
      very frequent operations the forcewake dance has a large impact on
      latency and keeping the timer alive until we are idle is preferred. To
      achieve this, if we call intel_uncore_forcewake_get whilst the timer is
      alive (repeated use), then set a flag to restart the timer on expiry
      rather than drop the forcewake usage count. The timer is racy, the
      consequence of the race is to expire the timer earlier than is now
      desired but does not impact on correct behaviour. The offset the race
      slightly, we set the active flag again on intel_uncore_forcewake_put.
      
      The effect should be to reduce the jitter of reacquiring the fw every
      1ms on a busy system. However, the cost is to keep the timer alive for
      an extra 1ms on a nearly idle system. We chose to incur the jitter
      previously to keep the timer off for as much as possible.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170526132209.14640-1-chris@chris-wilson.co.uk
      c9e0c6da
    • D
      drm/i915/guc: capture GuC logs if FW fails to load · ac58d2ab
      Daniele Ceraolo Spurio 提交于
      We're currently deleting the GuC logs if the FW fails to load, but those
      are still useful to understand why the loading failed. Keeping the
      object around allows us to access them after driver load is completed.
      
      v2: keep the object around instead of using kernel memory (chris)
          don't store the logs in the gpu_error struct (Chris)
          add a check on guc_log_level to avoid snapshotting empty logs
      
      v3: use separate debugfs for error log (Chris)
      
      v4: rebased
      
      v5: clean up obj selection, move err_load inside guc_log, move err_load
          cleanup, rename functions (Michal)
      
      v6: move obj back to intel_guc, move functions to intel_uc.c, don't
          clear obj on new GuC load, free object only if enable_guc_loading
          is set (Michal)
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Oscar Mateo <oscar.mateo@intel.com>
      Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
      Signed-off-by: NDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1495475428-19295-1-git-send-email-daniele.ceraolospurio@intel.comReviewed-by: NMichal Wajdeczko <michal.wajdeczko@intel.com>
      Tested-by: NMichel Thierry <michel.thierry@intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      ac58d2ab
    • M
      drm/i915/guc: Introduce buffer based cmd transport · f8a58d63
      Michal Wajdeczko 提交于
      Buffer based command transport can replace MMIO based mechanism.
      It may be used to perform host-2-guc and guc-to-host communication.
      
      Portions of this patch are based on work by:
       Michel Thierry <michel.thierry@intel.com>
       Robert Beckett <robert.beckett@intel.com>
       Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      
      v2: use gem_object_pin_map (Chris)
          don't use DEBUG_RATELIMITED (Chris)
          don't track action stats (Chris)
          simplify next fence (Chris)
          use READ_ONCE (Chris)
          move blob allocation to new function (Chris)
      
      v3: use static owner id (Daniele)
      v4: but keep channel initialization generic (Daniele)
          and introduce owner_sub_id (Daniele)
      Signed-off-by: NMichal Wajdeczko <michal.wajdeczko@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Oscar Mateo <oscar.mateo@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170526111326.87280-3-michal.wajdeczko@intel.com
      f8a58d63
    • M
      drm/i915/guc: Disable send function on fini · 2f64085a
      Michal Wajdeczko 提交于
      In earlier patch 789a6251 we were enabling send function only
      after successful init. For completeness, we should make sure
      that we disable it on fini.
      
      v2: don't group steps by submission flag (Chris)
      Signed-off-by: NMichal Wajdeczko <michal.wajdeczko@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170526111326.87280-2-michal.wajdeczko@intel.com
      2f64085a
    • P
      drm/i915: Drop AUX backlight enable check for backlight control · 49d191dd
      Puthikorn Voravootivat 提交于
      There are some panel that
      (1) does not support display backlight enable via AUX
      (2) support display backlight adjustment via AUX
      (3) support display backlight enable via eDP BL_ENABLE pin
      
      The current driver required that (1) must be support to enable (2).
      This patch drops that requirement.
      Signed-off-by: NPuthikorn Voravootivat <puthik@chromium.org>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170523223805.46372-2-puthik@chromium.org
      49d191dd
    • C
      drm/i915: Consolidate #ifdef CONFIG_INTEL_IOMMU · 80debff8
      Chris Wilson 提交于
      We depend on intel_iommu_gfx_mapped for various workarounds, but that is
      only available under an #ifdef CONFIG_INTEL_IOMMU. Refactor all the
      cut-and-paste ifdefs to a common routine.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170525121612.2190-1-chris@chris-wilson.co.ukReviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      80debff8
    • C
      drm/i915: Only GGTT vma may be pinned and prevent shrinking · b2241f18
      Chris Wilson 提交于
      As only GGTT vma may be permanently pinned and are always at the head of
      the object's vma list, as soon as we seen a ppGTT vma we can stop
      searching for any_vma_pinned().
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20170525072528.11185-1-chris@chris-wilson.co.ukReviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      b2241f18
    • R
      drm/amdgpu: fix null point error when rmmod amdgpu. · b62ce397
      Rex Zhu 提交于
      this bug happened when amdgpu load failed.
      
      [   75.740951] BUG: unable to handle kernel paging request at 00000000000031c0
      [   75.748167] IP: [<ffffffffa064a0e0>] amdgpu_fbdev_restore_mode+0x20/0x60 [amdgpu]
      [   75.755774] PGD 0
      
      [   75.759185] Oops: 0000 [#1] SMP
      [   75.762408] Modules linked in: amdgpu(OE-) ttm(OE) drm_kms_helper(OE) drm(OE) i2c_algo_bit(E) fb_sys_fops(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) rpcsec_gss_krb5(E) nfsv4(E) nfs(E) fscache(E) eeepc_wmi(E) asus_wmi(E) sparse_keymap(E) intel_rapl(E) snd_hda_codec_hdmi(E) snd_hda_codec_realtek(E) snd_hda_codec_generic(E) snd_hda_intel(E) snd_hda_codec(E) snd_hda_core(E) x86_pkg_temp_thermal(E) intel_powerclamp(E) snd_hwdep(E) snd_pcm(E) snd_seq_midi(E) coretemp(E) kvm_intel(E) snd_seq_midi_event(E) snd_rawmidi(E) kvm(E) snd_seq(E) joydev(E) snd_seq_device(E) snd_timer(E) irqbypass(E) crct10dif_pclmul(E) crc32_pclmul(E) mei_me(E) ghash_clmulni_intel(E) snd(E) aesni_intel(E) mei(E) soundcore(E) aes_x86_64(E) shpchp(E) serio_raw(E) lrw(E) acpi_pad(E) gf128mul(E) glue_helper(E) ablk_helper(E) mac_hid(E)
      [   75.835574]  cryptd(E) parport_pc(E) ppdev(E) lp(E) nfsd(E) parport(E) auth_rpcgss(E) nfs_acl(E) lockd(E) grace(E) sunrpc(E) autofs4(E) hid_generic(E) usbhid(E) mxm_wmi(E) psmouse(E) e1000e(E) ptp(E) pps_core(E) ahci(E) libahci(E) wmi(E) video(E) i2c_hid(E) hid(E)
      [   75.858489] CPU: 5 PID: 1603 Comm: rmmod Tainted: G           OE   4.9.0-custom #2
      [   75.866183] Hardware name: System manufacturer System Product Name/Z170-A, BIOS 0901 08/31/2015
      [   75.875050] task: ffff88045d1bbb80 task.stack: ffffc90002de4000
      [   75.881094] RIP: 0010:[<ffffffffa064a0e0>]  [<ffffffffa064a0e0>] amdgpu_fbdev_restore_mode+0x20/0x60 [amdgpu]
      [   75.891238] RSP: 0018:ffffc90002de7d48  EFLAGS: 00010286
      [   75.896648] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000001
      [   75.903933] RDX: 0000000000000000 RSI: ffff88045d1bbb80 RDI: 0000000000000286
      [   75.911183] RBP: ffffc90002de7d50 R08: 0000000000000502 R09: 0000000000000004
      [   75.918449] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880464bf0000
      [   75.925675] R13: ffffffffa0853000 R14: 0000000000000000 R15: 0000564e44f88210
      [   75.932980] FS:  00007f13d5400700(0000) GS:ffff880476540000(0000) knlGS:0000000000000000
      [   75.941238] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   75.947088] CR2: 00000000000031c0 CR3: 000000045fd0b000 CR4: 00000000003406e0
      [   75.954332] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [   75.961566] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [   75.968834] Stack:
      [   75.970881]  ffff880464bf0000 ffffc90002de7d60 ffffffffa0636592 ffffc90002de7d80
      [   75.978454]  ffffffffa059015f ffff880464bf0000 ffff880464bf0000 ffffc90002de7da8
      [   75.986076]  ffffffffa0595216 ffff880464bf0000 ffff880460f4d000 ffffffffa0853000
      [   75.993692] Call Trace:
      [   75.996177]  [<ffffffffa0636592>] amdgpu_driver_lastclose_kms+0x12/0x20 [amdgpu]
      [   76.003700]  [<ffffffffa059015f>] drm_lastclose+0x2f/0xd0 [drm]
      [   76.009777]  [<ffffffffa0595216>] drm_dev_unregister+0x16/0xd0 [drm]
      [   76.016255]  [<ffffffffa0595944>] drm_put_dev+0x34/0x70 [drm]
      [   76.022139]  [<ffffffffa062f365>] amdgpu_pci_remove+0x15/0x20 [amdgpu]
      [   76.028800]  [<ffffffff81416499>] pci_device_remove+0x39/0xc0
      [   76.034661]  [<ffffffff81531caa>] __device_release_driver+0x9a/0x140
      [   76.041121]  [<ffffffff81531e58>] driver_detach+0xb8/0xc0
      [   76.046575]  [<ffffffff81530c95>] bus_remove_driver+0x55/0xd0
      [   76.052401]  [<ffffffff815325fc>] driver_unregister+0x2c/0x50
      [   76.058244]  [<ffffffff81416289>] pci_unregister_driver+0x29/0x90
      [   76.064466]  [<ffffffffa0596c5e>] drm_pci_exit+0x9e/0xb0 [drm]
      [   76.070507]  [<ffffffffa0796d71>] amdgpu_exit+0x1c/0x32 [amdgpu]
      [   76.076609]  [<ffffffff81104810>] SyS_delete_module+0x1a0/0x200
      [   76.082627]  [<ffffffff810e2b1a>] ? rcu_eqs_enter.isra.36+0x4a/0x50
      [   76.089001]  [<ffffffff8100392e>] do_syscall_64+0x6e/0x180
      [   76.094583]  [<ffffffff817e1d2f>] entry_SYSCALL64_slow_path+0x25/0x25
      [   76.101114] Code: 94 c0 c3 31 c0 5d c3 0f 1f 40 00 0f 1f 44 00 00 55 31 c0 48 89 e5 53 48 89 fb 48 c7 c7 1d 21 84 a0 e8 ab 77 b3 e0 e8 fc 8b d7 e0 <48> 8b bb c0 31 00 00 48 85 ff 74 09 e8 ff eb fc ff 85 c0 75 03
      [   76.121432] RIP  [<ffffffffa064a0e0>] amdgpu_fbdev_restore_mode+0x20/0x60 [amdgpu]
      Signed-off-by: NRex Zhu <Rex.Zhu@amd.com>
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      b62ce397
  4. 25 5月, 2017 9 次提交
  5. 24 5月, 2017 3 次提交
  6. 23 5月, 2017 7 次提交
  7. 22 5月, 2017 6 次提交