Chris Wilson
818fed4f25
drm/i915: Silence warning for no vlv powercontext
...
Along a module load error path, we may try to cleanup the powercontext
even before we have allocated it. Reorganising GT powermanagement is an
on going process, so for simplicity handle it.
[ 522.733832] WARN_ON(!dev_priv->vlv_pctx)
[ 522.733986] WARNING: CPU: 1 PID: 3856 at drivers/gpu/drm/i915/intel_pm.c:7350 intel_cleanup_gt_powersave+0x5f/0x70 [i915]
[ 522.733991] Modules linked in: i915(+) vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic btusb btrtl btbcm btintel intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul bluetooth snd_hda_codec ghash_clmulni_intel snd_hwdep snd_hda_core ecdh_generic lpc_ich r8169 snd_pcm mii i2c_hid prime_numbers [last unloaded: i915]
[ 522.734105] CPU: 1 PID: 3856 Comm: drv_module_relo Tainted: G U 4.18.0-rc4-CI-CI_DRM_4474+ #1
[ 522.734110] Hardware name: \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff/DN2820FYK, BIOS FYBYT10H.86A.0059.2017.0607.2130 06/07/2017
[ 522.734193] RIP: 0010:intel_cleanup_gt_powersave+0x5f/0x70 [i915]
[ 522.734197] Code: 00 74 0d 48 c7 83 68 a6 00 00 00 00 00 00 eb c8 e8 36 6f 37 e1 eb ec 48 c7 c6 c5 7a 3d a0 48 c7 c7 b5 78 3d a0 e8 71 04 e0 e0 <0f> 0b eb aa 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 f3 c3 0f 1f 40
[ 522.734445] RSP: 0018:ffffc900004f3af0 EFLAGS: 00010282
[ 522.734453] RAX: 0000000000000000 RBX: ffff880106360000 RCX: 0000000000000001
[ 522.734458] RDX: 0000000080000001 RSI: ffffffff820c65c4 RDI: 00000000ffffffff
[ 522.734463] RBP: ffff880106360000 R08: 000000009f79baee R09: 0000000000000000
[ 522.734467] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88013b3133f8
[ 522.734472] R13: 00000000ffffffed R14: ffff880106360d58 R15: ffff88013b3133f8
[ 522.734477] FS: 00007f43f70af980(0000) GS:ffff88013fd00000(0000) knlGS:0000000000000000
[ 522.734481] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 522.734486] CR2: 000055a13a787580 CR3: 00000001325e6000 CR4: 00000000001006e0
[ 522.734490] Call Trace:
[ 522.734595] intel_modeset_cleanup+0xcf/0x140 [i915]
[ 522.734682] i915_driver_load+0xc85/0x10a0 [i915]
[ 522.734694] ? _raw_spin_unlock_irqrestore+0x4c/0x60
[ 522.734703] ? trace_hardirqs_on_caller+0xe0/0x1b0
[ 522.734790] i915_pci_probe+0x29/0x90 [i915]
[ 522.734801] pci_device_probe+0xa1/0x130
[ 522.734813] driver_probe_device+0x306/0x480
[ 522.734824] __driver_attach+0xdb/0x100
[ 522.734830] ? driver_probe_device+0x480/0x480
[ 522.734836] ? driver_probe_device+0x480/0x480
[ 522.734844] bus_for_each_dev+0x74/0xc0
[ 522.734855] bus_add_driver+0x15f/0x250
[ 522.734863] ? 0xffffffffa0793000
[ 522.734870] driver_register+0x56/0xe0
[ 522.734877] ? 0xffffffffa0793000
[ 522.734883] do_one_initcall+0x58/0x370
[ 522.734893] ? do_init_module+0x1d/0x1ea
[ 522.734900] ? rcu_read_lock_sched_held+0x6f/0x80
[ 522.734906] ? kmem_cache_alloc_trace+0x282/0x2e0
[ 522.734918] do_init_module+0x56/0x1ea
[ 522.734927] load_module+0x2435/0x2b20
[ 522.734965] ? __se_sys_finit_module+0xd3/0xf0
[ 522.734972] __se_sys_finit_module+0xd3/0xf0
[ 522.734995] do_syscall_64+0x55/0x190
[ 522.735003] entry_SYSCALL_64_after_hwframe+0x49/0xbe
[ 522.735009] RIP: 0033:0x7f43f675d839
[ 522.735014] Code: 00 f3 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 1f f6 2c 00 f7 d8 64 89 01 48
[ 522.735260] RSP: 002b:00007ffe69384238 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 522.735269] RAX: ffffffffffffffda RBX: 000056100e387090 RCX: 00007f43f675d839
[ 522.735273] RDX: 0000000000000000 RSI: 000056100e37bff0 RDI: 0000000000000003
[ 522.735278] RBP: 000056100e37bff0 R08: 0000000000000000 R09: 0000000000000000
[ 522.735282] R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000000000
[ 522.735286] R13: 000056100e37c890 R14: 0000000000000020 R15: 0000000000000027
[ 522.735309] irq event stamp: 1389594
[ 522.735316] hardirqs last enabled at (1389593): [<ffffffff810f896c>] console_unlock+0x3fc/0x600
[ 522.735323] hardirqs last disabled at (1389594 ): [<ffffffff81a0111c>] error_entry+0x7c/0x100
[ 522.735329] softirqs last enabled at (1389356 ): [<ffffffff81c0034f>] __do_softirq+0x34f/0x505
[ 522.735336] softirqs last disabled at (1389335): [<ffffffff8108c7b9>] irq_exit+0xa9/0xc0
[ 522.735432] WARNING: CPU: 1 PID: 3856 at drivers/gpu/drm/i915/intel_pm.c:7350 intel_cleanup_gt_powersave+0x5f/0x70 [i915]
Testcase: igt/drv_module_reload/basic-reload-inject
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Reviewed-by: Matthew Auld <matthew.auld@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180712105454.16091-1-chris@chris-wilson.co.uk
2018-07-12 13:26:15 +01:00
Dominique Martinet
d6b4ea866b
drm/i915/tv: fix strncpy truncation warning
...
Change it to use strlcpy instead
Signed-off-by: Dominique Martinet <asmadeus@codewreck.org >
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk >
Link: https://patchwork.freedesktop.org/patch/msgid/20180712074103.21571-1-chris@chris-wilson.co.uk
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
2018-07-12 10:18:19 +01:00
Arnd Bergmann
58d4d29823
drm/sun4i: fix build failure with CONFIG_DRM_SUN8I_MIXER=m
...
Having DRM_SUN4I built-in but DRM_SUN8I_MIXER as a loadable module results in
a link error, as we try to access a symbol from the sun8i_tcon_top.ko module:
ERROR: "sun8i_tcon_top_of_table" [drivers/gpu/drm/sun4i/sun8i-drm-hdmi.ko] undefined!
ERROR: "sun8i_tcon_top_of_table" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined!
This solves the problem by adding a silent symbol for the tcon_top module,
building it as a separate module in exactly the cases that we need it,
but in a way that it is reachable by the other modules.
Fixes: 57e23de02f ("drm/sun4i: DW HDMI: Expand algorithm for possible crtcs")
Fixes: ef0cf6441f ("drm/sun4i: Add support for traversing graph with TCON TOP")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180711144403.1022829-1-arnd@arndb.de
2018-07-12 09:35:19 +02:00
Jernej Skrabec
7da9b2e47f
drm/sun4i: mixer: Read id from DT
...
Currently, TCON supports 2 ways to match TCON with engine (mixer in this
case). Old way is to just traverse of graph backwards and compare node
pointer. New way is to match TCON and engine by their respective ids.
All SoCs with DE2 enabled till now used the old way, which means mixer
id was never used and thus never implemented.
However, for R40, only the new way will be used. To prepare for that,
implement mixer id fetching from DT.
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180711112706.30222-1-jernej.skrabec@siol.net
2018-07-12 09:34:39 +02:00
Wei Yongjun
c089af18b2
drm/sun4i: DW HDMI: Make symbol sun8i_dw_hdmi_pltfm_driver static
...
Fixes the following sparse warning:
drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c:228:24: warning:
symbol 'sun8i_dw_hdmi_pltfm_driver' was not declared. Should it be static?
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/1531315367-190647-1-git-send-email-weiyongjun1@huawei.com
2018-07-12 09:33:56 +02:00
Rodrigo Vivi
91045034d5
Merge tag 'gvt-next-2018-07-11' of https://github.com/intel/gvt-linux into drm-intel-next-queued
...
gvt-next-2018-07-11
- vGPU huge page support (Changbin)
- BXT display irq warning fix (Colin)
- Handle GVT dependency well (Henry)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180711023353.GU1267@zhen-hp.sh.intel.com
2018-07-12 00:23:44 -07:00
Rodrigo Vivi
09d2da310d
Merge tag 'gvt-fixes-2018-07-11' of https://github.com/intel/gvt-linux into drm-intel-fixes
...
gvt-fixes-2018-07-11
- Fix KBL virtual register update from LRI for GPU hang (Henry)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180711024056.GV1267@zhen-hp.sh.intel.com
2018-07-12 00:15:53 -07:00
Rodrigo Siqueira
3a0709928b
drm/vkms: Add vblank events simulated by hrtimers
...
This commit adds regular vblank events simulated through hrtimers, which
is a feature required by VKMS to mimic real hardware. Additionally, all
the vblank event send after pageflip is kept in the atomic_flush
function.
Changes since V1:
- Compute the vblank timer interval per interruption
Ville Syrjälä and Daniel Vetter:
- Removes hardcoded vblank interval to get it from user space
Changes since V2:
Chris Wilson
- Removes unnecessary algorithm to compute the next period
Daniel Vetter:
- Uses drm_calc_timestamping_constants to get the vblank interval
instead of calculating it manually
- Adds disable_vblank helper that turns of crtc
- Simplifies implementation by using drm_crtc_arm_vblank_event
- Replaces the code in atomic_begin to atomic_flush
- Removes unnecessary field in vkms_output
Changes since V3:
Daniel Vetter:
- Squash "drm/vkms: Add atomic helpers functions" into the commit that
handling vblank events simulated by hrtimers
Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/7709bba40782ec06332d57fff337797b272581fc.1531359228.git.rodrigosiqueiramelo@gmail.com
2018-07-12 08:48:48 +02:00
Rodrigo Siqueira
d16489307a
drm/vkms: Add connectors helpers
...
This patch adds the struct drm_connector_helper_funcs with some
necessary hooks. Additionally, it also adds some missing hooks at
drm_connector_funcs.
Changes since V1:
- None
Change since V2:
Daniel Vetter:
- Remove vkms_conn_mode_valid
Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/c8ee28b889234e866ef18bce4216385661c48041.1531359228.git.rodrigosiqueiramelo@gmail.com
2018-07-12 08:48:42 +02:00
Eames Trinh
657cd71e8e
drm: gma500: Changed __attribute__((packed)) to __packed
...
Signed-off-by: Eames Trinh <eamestrinh@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710130021.4499-1-eamestrinh@gmail.com
2018-07-12 08:48:25 +02:00
Rodrigo Siqueira
559e50fd34
drm/vkms: Add dumb operations
...
VKMS currently does not handle dumb data, and as a consequence, it does
not provide mechanisms for handling gem. This commit adds the necessary
support for gem object/handler and the dumb functions.
Changes since V1:
Daniel Vetter:
- Add dumb buffer support to the same patchset
Changes since V2:
Haneen:
- Add missing gem_free_object_unlocked callback to fix the warning
"Memory manager not clean during takedown"
Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/70b7becc91c6a323dbc15cb5fc912cbdfe4ef7d9.1531359228.git.rodrigosiqueiramelo@gmail.com
2018-07-12 08:47:44 +02:00
Yong Zhao
e7016d8e6f
drm/amdkfd: Clean up reference of radeon
...
Signed-off-by: Yong Zhao <yong.zhao@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:08 -04:00
Yong Zhao
8d5f355290
drm/amdkfd: Replace mqd with mqd_mgr as the variable name for mqd_manager
...
This will make reading code much easier.
Signed-off-by: Yong Zhao <yong.zhao@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:07 -04:00
Yong Zhao
2b281977f5
drm/amdkfd: Use module parameters noretry as the internal variable name
...
This makes all module parameters use the same form. Meanwhile clean up
the surrounding code.
Signed-off-by: Yong Zhao <yong.zhao@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:06 -04:00
Yong Zhao
0e9a860c72
drm/amdkfd: Introduce KFD module parameter halt_if_hws_hang
...
This avoids triggering a GPU reset or otherwise changing the HW
state. Instead KFD will hang, which allows HW debugging tools to
analyze the problem.
Signed-off-by: Yong Zhao <yong.zhao@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:05 -04:00
Shaoyun Liu
a29ec470b1
drm/amdkfd: Add debugfs interface to trigger HWS hang
...
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:04 -04:00
Shaoyun Liu
1b0bfcff46
drm/amdgpu: Avoid destroy hqd when GPU is on reset
...
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:03 -04:00
Shaoyun Liu
bff418a2ee
drm/amdgpu: Avoid invalidate tlbs when gpu is on reset
...
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:02 -04:00
Shaoyun Liu
951df6d9cf
drm/amdkfd: Fix kernel queue 64 bit doorbell offset calculation
...
The bitmap index calculation should reverse the logic used on allocation
so it will clear the same bit used on allocation
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:01 -04:00
Shaoyun Liu
67ccea6059
drm/amdgpu: Check NULL pointer for job before reset job's ring
...
job could be NULL when amdgpu_device_gpu_recover is called
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:33:00 -04:00
Shaoyun Liu
b5d21aac33
drm/amdgpu: Don't use shadow BO for compute context
...
Compute contexts cannot keep going after a GPU reset. Currently the process
must terminate. In the future a process may be able recreate its context
from scratch. Either way, there is no need to restore the GPUVM page table
from shadow BOs.
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:59 -04:00
Shaoyun Liu
73ea648d92
drm/amdkfd: Implement hang detection in KFD and call amdgpu
...
The reset will be performed in a new hw_exception work thread to
handle HWS hang without blocking the thread that detected the hang.
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:58 -04:00
Shaoyun Liu
24da5a9ca6
drm/amdgpu: Enable the gpu reset from KFD
...
Hook up the gpu_recover callback from KFD to amdgpu to enable
handling of GPU hangs detected by KFD.
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:57 -04:00
Shaoyun Liu
e42051d213
drm/amdkfd: Implement GPU reset handlers in KFD
...
Lock KFD and evict existing queues on reset. Notify user mode by
signaling hw_exception events.
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:56 -04:00
Shaoyun Liu
5c6dd71e59
drm/amdgpu: Call KFD reset handlers during GPU reset
...
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:55 -04:00
Shaoyun Liu
e3b7a96774
drm/amdkfd: Add gpu reset interface and place holder
...
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:54 -04:00
Shaoyun Liu
6d15ca0af0
drm/amd: Add gpu reset interfaces between amdgpu and amdkfd
...
Signed-off-by: Shaoyun Liu <Shaoyun.Liu@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:52 -04:00
Lan Xiao
58e6988612
drm/amdkfd: fix zero reading of VMID and PASID for Hawaii
...
Upon VM Fault, the VMID and PASID written by HW are zeros in
Hawaii. Instead of reading from ih_ring_entry, read directly
from the registers. This workaround fix the soft hang issues
caused by mishandled VM Fault in Hawaii.
Signed-off-by: Lan Xiao <Lan.Xiao@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:51 -04:00
shaoyunl
2640c3facb
drm/amdkfd: Handle VM faults in KFD
...
1. Pre-GFX9 the amdgpu ISR saves the vm-fault status and address per
per-vmid. amdkfd needs to get the information from amdgpu through the
new get_vm_fault_info interface. On GFX9 and later, all the required
information is in the IH ring
2. amdkfd unmaps all queues from the faulting process and create new
run-list without the guilty process
3. amdkfd notifies the runtime of the vm fault trap via EVENT_TYPE_MEMORY
Signed-off-by: shaoyun liu <shaoyun.liu@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:50 -04:00
shaoyunl
b97dfa27ef
drm/amdgpu: save vm fault information for amdkfd
...
amdgpu save the vm fault related information for KFD usage and keep the
copy until KFD read it.
Signed-off-by: shaoyun liu <shaoyun.liu@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:49 -04:00
Moses Reuben
101fee63cb
drm/amdkfd: send SIGSEGV to process upon KFD_EVENT_TYPE_MEMORY
...
Signed-off-by: Moses Reuben <moses.reuben@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:48 -04:00
Wei Lu
e47cb828eb
drm/amdkfd: Fix error codes in kfd_get_process
...
Return ERR_PTR(-EINVAL) if kfd_get_process fails to find the process.
This fixes kernel oopses when a child process calls KFD ioctls with
a file descriptor inherited from the parent process.
Signed-off-by: Wei Lu <wei.lu2@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:47 -04:00
Jay Cornwall
a60d811b2b
drm/amdkfd: Fix race between scheduler and context restore
...
The scheduler may raise SQ_WAVE_STATUS.SPI_PRIO via SQ_CMD before
context restore has completed. Restoring SPI_PRIO=0 after this point
may cause context save to fail as the lower priority wavefronts
are not selected for execution among spin-waiting wavefronts.
Leave SPI_PRIO at its SPI-initialized or scheduler-raised value.
v2: Also fix race with exception handler
Signed-off-by: Jay Cornwall <Jay.Cornwall@amd.com >
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:46 -04:00
Felix Kuehling
1cd106ecfc
drm/amdkfd: Stop using GFP_NOIO explicitly
...
This is no longer needed with the memalloc_nofs_save/restore in
dqm_lock/unlock.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:45 -04:00
Felix Kuehling
efeaed4d98
drm/amdkfd: Reliably prevent reclaim-FS while holding DQM lock
...
This is needed to prevent deadlocks when MMU notifiers run in
reclaim-FS context and take the DQM lock for userptr evictions.
Previously this was done by making all memory allocations under
DQM locks GFP_NOIO. This is error prone. Using
memalloc_nofs_save/restore will reliably affect all memory
allocations anywhere in the kernel while the DQM lock is held.
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com >
Acked-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 22:32:44 -04:00
Noralf Trønnes
ae61f61fa8
drm/client: Fix: drm_client_new: Don't require DRM to be registered
...
Commit 894a677f4b ("drm/cma-helper: Use the generic fbdev emulation")
broke almost all drivers that use the CMA helper.
The reason is that drm_client_new() requires that the DRM device has
been registered, but the drivers register fbdev before registering DRM.
Remove the requirement that DRM should be registered when creating a
new client.
Fixes: c76f0f7cb5 ("drm: Begin an API for in-kernel clients")
Cc: Maxime Ripard <maxime.ripard@bootlin.com >
Cc: Icenowy Zheng <icenowy@aosc.io >
Cc: Chen-Yu Tsai <wens@csie.org >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Tested-by: Icenowy Zheng <icenowy@aosc.io >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180711155632.37437-1-noralf@tronnes.org
2018-07-11 22:25:51 +02:00
Noralf Trønnes
5685ca0ca2
drm/tinydrm: Fix doc build warnings
...
include/drm/tinydrm/tinydrm.h:34: warning: Function parameter or member 'fb_dirty' not described in 'tinydrm_device'
drivers/gpu/drm/tinydrm/mipi-dbi.c:272: warning: Function parameter or member 'crtc_state' not described in 'mipi_dbi_enable_flush'
drivers/gpu/drm/tinydrm/mipi-dbi.c:272: warning: Function parameter or member 'plane_state' not described in 'mipi_dbi_enable_flush'
Move struct member docs inline so it's not missed next time.
Cc: David Lechner <david@lechnology.com >
Signed-off-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: David Lechner <david@lechnology.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710150518.10528-1-noralf@tronnes.org
2018-07-11 22:24:02 +02:00
Vladimir Zapolskiy
03e3ec9ad1
drm/panel: simple: Add Sharp LQ035Q7DB03 panel support
...
The change adds support for Sharp LQ035Q7DB03 3.5" QVGA TFT panel.
Note that this aged panel is already found in the kernel sources,
for instance in board mach files mach-mx21ads.c, mach-mx27ads.c,
mach-pcm043.c, lpd270.c and imx27-phytec-phycore-rdk.dts.
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Signed-off-by: Thierry Reding <treding@nvidia.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180706185101.31186-1-vz@mleia.com
2018-07-11 18:35:25 +02:00
Chris Wilson
655250a8d1
drm/i915/execlists: Switch to rb_root_cached
...
The kernel recently gained an augmented rbtree with the purpose of
cacheing the leftmost element of the rbtree, a frequent optimisation to
avoid calls to rb_first() which is also employed by the
execlists->queue. Switch from our open-coded cache to the library.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180629075348.27358-9-chris@chris-wilson.co.uk
2018-07-11 14:38:45 +01:00
Chris Wilson
cb4dc8daf4
drm/i915/selftests: Add a safety net to live_workarounds
...
Since live_workarounds poke around the w/a registers and checks to see
if they survive across a reset, we are prone to fouling the machine and
leaving it in a non-recoverable state. Wrap the probe inside a timeout
to abort the test if the reset fails.
v2: Include GEM_TRACE on declaring wedged.
v3: Add a few includes to make the header look standalone.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107188
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180711122952.18448-1-chris@chris-wilson.co.uk
2018-07-11 14:13:56 +01:00
Chris Wilson
19bb33c756
drm/i915: Introduce i915_address_space.mutex
...
Add a mutex into struct i915_address_space to be used while operating on
the vma and their lists for a particular vm. As this may be called from
the shrinker, we taint the mutex with fs_reclaim so that from the start
lockdep warns us if we are caught holding the mutex across an
allocation. (With such small steps we will eventually rid ourselves of
struct_mutex recursion!)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180711073608.20286-2-chris@chris-wilson.co.uk
2018-07-11 13:56:16 +01:00
Arnd Bergmann
0337976f40
drm/admkfd use modern ktime accessors
...
getrawmonotonic64() and get_monotonic_boottime64() are deprecated
because of the nonstandard naming.
The replacement functions ktime_get_raw_ns() and ktime_get_boot_ns()
also simplify the callers.
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com >.
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com >
2018-07-11 14:41:00 +02:00
Jernej Skrabec
5e4965667a
drm/sun4i: tcon-top: Remove mux configuration at probe time
...
Now that R40 TCON migrated to runtime mux configuration, old code can be
removed.
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710203511.18454-18-jernej.skrabec@siol.net
2018-07-11 09:57:45 +02:00
Jernej Skrabec
05db311a79
drm/sun4i: tcon-top: Add helpers for mux switching
...
We want to be able to set TCON TOP muxes at runtime. Add helpers for
that.
Old, static configuration of muxes at probe time is preserved for now.
It will be removed when R40 TCON starts using them.
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710203511.18454-12-jernej.skrabec@siol.net
2018-07-11 09:54:54 +02:00
Jernej Skrabec
e0f56782bc
drm/sun4i: mixer: Order includes alphabetically
...
Includes are not alphabetically ordered.
Reorder them.
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710203511.18454-10-jernej.skrabec@siol.net
2018-07-11 09:53:53 +02:00
Jernej Skrabec
4a068c5c17
drm/sun4i: DW HDMI: Release nodes if error happens during CRTC search
...
If error happens in sun8i_dw_hdmi_find_possible_crtcs(), nodes are not
released with of_node_put() before returning.
Fix that by calling of_node_put() when necessary. While on it, clean up
the code by using of_graph_get_remote_node() which also lowers number of
cases where error handling has to be performed.
Fixes: 57e23de02f ("drm/sun4i: DW HDMI: Expand algorithm for possible crtcs")
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710203511.18454-8-jernej.skrabec@siol.net
2018-07-11 09:53:21 +02:00
Jernej Skrabec
da82107ecf
drm/sun4i: tcon: Release node when traversing of graph
...
Function sun4i_tcon_find_engine_traverse() doesn't release node if it
needs to traverse of graph deeper than 1 level.
Fix this by calling of_node_put().
Fixes: 49836b11fe ("drm/sun4i: tcon: Generalize engine search algorithm")
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710203511.18454-6-jernej.skrabec@siol.net
2018-07-11 09:52:41 +02:00
Jernej Skrabec
af11942ee4
drm/sun4i: tcon-top: Cleanup clock handling
...
There is no need to acquire reference to clock just to get its name.
This commit just cleans up the code. There is no functional change.
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
[Maxime: Fixed the of_property_match_string error check]
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710203511.18454-5-jernej.skrabec@siol.net
2018-07-11 09:51:59 +02:00
Jernej Skrabec
d978a94b0a
drm/sun4i: Add R40 display engine compatible
...
R40 has versatile display pipeline. It supports two simultanious outputs
on various outputs (TVE, VGA, HDMI, MIPI DSI, LCD).
Reviewed-by: Chen-Yu Tsai <wens@csie.org >
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net >
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20180710203511.18454-3-jernej.skrabec@siol.net
2018-07-11 09:49:40 +02:00
Al Viro
b4e7a7a88b
drm_mode_create_lease_ioctl(): fix open-coded filp_clone_open()
...
Failure of ->open() should *not* be followed by fput(). Fixed by
using filp_clone_open(), which gets the cleanups right.
Cc: stable@vger.kernel.org
Acked-by: Linus Torvalds <torvalds@linux-foundation.org >
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
2018-07-10 23:29:03 -04:00