<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu, branch v5.2.19</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v5.2.19</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v5.2.19'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2019-10-05T11:14:16+00:00</updated>
<entry>
<title>drm/amd/display: Restore backlight brightness after system resume</title>
<updated>2019-10-05T11:14:16+00:00</updated>
<author>
<name>Kai-Heng Feng</name>
<email>kai.heng.feng@canonical.com</email>
</author>
<published>2019-09-02T08:33:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cb2daf3e8cef34dfcccf390e64e7f7747aaf48f2'/>
<id>urn:sha1:cb2daf3e8cef34dfcccf390e64e7f7747aaf48f2</id>
<content type='text'>
commit bb264220d9316f6bd7c1fd84b8da398c93912931 upstream.

Laptops with AMD APU doesn't restore display backlight brightness after
system resume.

This issue started when DC was introduced.

Let's use BL_CORE_SUSPENDRESUME so the backlight core calls
update_status callback after system resume to restore the backlight
level.

Tested on Dell Inspiron 3180 (Stoney Ridge) and Dell Latitude 5495
(Raven Ridge).

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Kai-Heng Feng &lt;kai.heng.feng@canonical.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm: fix module name in edid_firmware log message</title>
<updated>2019-10-05T11:13:58+00:00</updated>
<author>
<name>Jani Nikula</name>
<email>jani.nikula@intel.com</email>
</author>
<published>2019-08-21T09:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=798b010be17bf2e2e53eba96d2d2c67a1adc2d61'/>
<id>urn:sha1:798b010be17bf2e2e53eba96d2d2c67a1adc2d61</id>
<content type='text'>
[ Upstream commit ade925995b172f1d7410d1c665b2f47c5e99bef0 ]

The module is drm_kms_helper, not drm_kms_firmware.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204549
Reported-by: Göran Uddeborg &lt;goeran@uddeborg.se&gt;
Fixes: ac6c35a4d8c7 ("drm: add backwards compatibility support for drm_kms_helper.edid_firmware")
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20190821094312.5514-1-jani.nikula@intel.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2)</title>
<updated>2019-10-05T11:13:58+00:00</updated>
<author>
<name>Ahzo</name>
<email>Ahzo@tutanota.com</email>
</author>
<published>2019-08-05T19:14:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=06752109ced1e7c719d7dce9f12c9e67a93b62c7'/>
<id>urn:sha1:06752109ced1e7c719d7dce9f12c9e67a93b62c7</id>
<content type='text'>
[ Upstream commit f659bb6dae58c113805f92822e4c16ddd3156b79 ]

This fixes screen corruption/flickering on 75 Hz displays.

v2: make print statement debug only (Alex)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102646
Reviewed-by: Evan Quan &lt;evan.quan@amd.com&gt;
Signed-off-by: Ahzo &lt;Ahzo@tutanota.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/nouveau/disp/nv50-: fix center/aspect-corrected scaling</title>
<updated>2019-10-01T07:01:44+00:00</updated>
<author>
<name>Ilia Mirkin</name>
<email>imirkin@alum.mit.edu</email>
</author>
<published>2019-05-25T22:41:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=baa3902119f553d8ee521d8afd40c18ab4f7af0e'/>
<id>urn:sha1:baa3902119f553d8ee521d8afd40c18ab4f7af0e</id>
<content type='text'>
[ Upstream commit 533f4752407543f488a9118d817b8c504352b6fb ]

Previously center scaling would get scaling applied to it (when it was
only supposed to center the image), and aspect-corrected scaling did not
always correctly pick whether to reduce width or height for a particular
combination of inputs/outputs.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110660
Signed-off-by: Ilia Mirkin &lt;imirkin@alum.mit.edu&gt;
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/dp: Add DP_DPCD_QUIRK_NO_SINK_COUNT</title>
<updated>2019-10-01T07:01:43+00:00</updated>
<author>
<name>Ville Syrjälä</name>
<email>ville.syrjala@linux.intel.com</email>
</author>
<published>2019-05-28T14:06:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=955b7a09bf57a5d5dd371a66d05aa2e11fb2e214'/>
<id>urn:sha1:955b7a09bf57a5d5dd371a66d05aa2e11fb2e214</id>
<content type='text'>
[ Upstream commit 7974033e527a5dd12d96126d09d4cff4f9b65c69 ]

CH7511 eDP-&gt;LVDS bridge doesn't seem to set SINK_COUNT properly
causing i915 to detect it as disconnected. Add a quirk to ignore
SINK_COUNT on these devices.

Cc: David S. &lt;david@majinbuu.com&gt;
Cc: Peteris Rudzusiks &lt;peteris.rudzusiks@gmail.com&gt;
Tested-by: Peteris Rudzusiks &lt;peteris.rudzusiks@gmail.com&gt;
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105406
Signed-off-by: Ville Syrjälä &lt;ville.syrjala@linux.intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20190528140650.19230-1-ville.syrjala@linux.intel.com
Acked-by: Jani Nikula &lt;jani.nikula@intel.com&gt; #irc
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm: Flush output polling on shutdown</title>
<updated>2019-10-01T07:01:43+00:00</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2019-06-03T13:58:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a7734a035acf267504b4a68b6a58d9a87b3c70ad'/>
<id>urn:sha1:a7734a035acf267504b4a68b6a58d9a87b3c70ad</id>
<content type='text'>
[ Upstream commit 3b295cb1a411d9c82bbfaa66bc17a8508716ed07 ]

We need to mark the output polling as disabled to prevent concurrent
irqs from queuing new work as shutdown the probe -- causing that work to
execute after we have freed the structs:

&lt;4&gt; [341.846490] DEBUG_LOCKS_WARN_ON(mutex_is_locked(lock))
&lt;4&gt; [341.846497] WARNING: CPU: 3 PID: 3300 at kernel/locking/mutex-debug.c:103 mutex_destroy+0x49/0x50
&lt;4&gt; [341.846508] Modules linked in: i915(-) vgem thunderbolt snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic mei_hdcp x86_pkg_temp_thermal coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm mcs7830 btusb usbnet btrtl mii btbcm btintel bluetooth ecdh_generic ecc mei_me mei prime_numbers i2c_hid pinctrl_sunrisepoint pinctrl_intel [last unloaded: i915]
&lt;4&gt; [341.846546] CPU: 3 PID: 3300 Comm: i915_module_loa Tainted: G     U            5.2.0-rc2-CI-CI_DRM_6175+ #1
&lt;4&gt; [341.846553] Hardware name: Dell Inc. XPS 13 9360/0823VW, BIOS 2.9.0 07/09/2018
&lt;4&gt; [341.846560] RIP: 0010:mutex_destroy+0x49/0x50
&lt;4&gt; [341.846565] Code: 00 00 5b c3 e8 a8 9f 3b 00 85 c0 74 ed 8b 05 3e 55 23 01 85 c0 75 e3 48 c7 c6 00 d0 08 82 48 c7 c7 a8 aa 07 82 e8 e7 08 fa ff &lt;0f&gt; 0b eb cc 0f 1f 00 48 b8 11 11 11 11 11 11 11 11 48 89 76 20 48
&lt;4&gt; [341.846578] RSP: 0018:ffffc900006cfdb0 EFLAGS: 00010286
&lt;4&gt; [341.846583] RAX: 0000000000000000 RBX: ffff88826759a168 RCX: 0000000000000000
&lt;4&gt; [341.846589] RDX: 0000000000000002 RSI: 0000000000000000 RDI: ffffffff8112844c
&lt;4&gt; [341.846595] RBP: ffff8882708fa548 R08: 0000000000000000 R09: 0000000000039600
&lt;4&gt; [341.846601] R10: 0000000000000000 R11: 0000000000000ce4 R12: ffffffffa07de1e0
&lt;4&gt; [341.846607] R13: 0000000000000000 R14: 0000000000000000 R15: ffffffffa07de2d0
&lt;4&gt; [341.846613] FS:  00007f62b5ae0e40(0000) GS:ffff888276380000(0000) knlGS:0000000000000000
&lt;4&gt; [341.846620] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
&lt;4&gt; [341.846626] CR2: 000055a4e064f4a0 CR3: 0000000266b16006 CR4: 00000000003606e0
&lt;4&gt; [341.846632] Call Trace:
&lt;4&gt; [341.846639]  drm_fb_helper_fini.part.17+0xb3/0x100
&lt;4&gt; [341.846682]  intel_fbdev_fini+0x20/0x80 [i915]
&lt;4&gt; [341.846722]  intel_modeset_cleanup+0x9a/0x140 [i915]
&lt;4&gt; [341.846750]  i915_driver_unload+0xa3/0x100 [i915]
&lt;4&gt; [341.846778]  i915_pci_remove+0x19/0x30 [i915]
&lt;4&gt; [341.846784]  pci_device_remove+0x36/0xb0
&lt;4&gt; [341.846790]  device_release_driver_internal+0xd3/0x1b0
&lt;4&gt; [341.846795]  driver_detach+0x3f/0x80
&lt;4&gt; [341.846800]  bus_remove_driver+0x53/0xd0
&lt;4&gt; [341.846805]  pci_unregister_driver+0x25/0xa0
&lt;4&gt; [341.846843]  i915_exit+0x16/0x1c [i915]
&lt;4&gt; [341.846849]  __se_sys_delete_module+0x162/0x210
&lt;4&gt; [341.846855]  ? trace_hardirqs_off_thunk+0x1a/0x1c
&lt;4&gt; [341.846859]  ? do_syscall_64+0xd/0x1c0
&lt;4&gt; [341.846864]  do_syscall_64+0x55/0x1c0
&lt;4&gt; [341.846869]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
&lt;4&gt; [341.846875] RIP: 0033:0x7f62b51871b7
&lt;4&gt; [341.846881] Code: 73 01 c3 48 8b 0d d1 8c 2c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 b8 b0 00 00 00 0f 05 &lt;48&gt; 3d 01 f0 ff ff 73 01 c3 48 8b 0d a1 8c 2c 00 f7 d8 64 89 01 48
&lt;4&gt; [341.846897] RSP: 002b:00007ffe7a227138 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
&lt;4&gt; [341.846904] RAX: ffffffffffffffda RBX: 00007ffe7a2272b0 RCX: 00007f62b51871b7
&lt;4&gt; [341.846910] RDX: 0000000000000001 RSI: 0000000000000800 RDI: 0000557cd6b55948
&lt;4&gt; [341.846916] RBP: 0000557cd6b558e0 R08: 0000557cd6b5594c R09: 00007ffe7a227160
&lt;4&gt; [341.846922] R10: 00007ffe7a226134 R11: 0000000000000206 R12: 0000000000000000
&lt;4&gt; [341.846927] R13: 00007ffe7a227820 R14: 0000000000000000 R15: 0000000000000000
&lt;4&gt; [341.846936] irq event stamp: 3547847
&lt;4&gt; [341.846940] hardirqs last  enabled at (3547847): [&lt;ffffffff819aad2c&gt;] _raw_spin_unlock_irqrestore+0x4c/0x60
&lt;4&gt; [341.846949] hardirqs last disabled at (3547846): [&lt;ffffffff819aab9d&gt;] _raw_spin_lock_irqsave+0xd/0x50
&lt;4&gt; [341.846957] softirqs last  enabled at (3547376): [&lt;ffffffff81c0033a&gt;] __do_softirq+0x33a/0x4b9
&lt;4&gt; [341.846966] softirqs last disabled at (3547367): [&lt;ffffffff810b6379&gt;] irq_exit+0xa9/0xc0
&lt;4&gt; [341.846973] WARNING: CPU: 3 PID: 3300 at kernel/locking/mutex-debug.c:103 mutex_destroy+0x49/0x50
&lt;4&gt; [341.846980] ---[ end trace ba94ca8952ba970e ]---
&lt;7&gt; [341.866547] [drm:intel_dp_detect [i915]] MST support? port A: no, sink: no, modparam: yes
&lt;7&gt; [341.890480] [drm:drm_add_display_info] non_desktop set to 0
&lt;7&gt; [341.890530] [drm:drm_add_edid_modes] ELD: no CEA Extension found
&lt;7&gt; [341.890537] [drm:drm_add_display_info] non_desktop set to 0
&lt;7&gt; [341.890578] [drm:drm_helper_probe_single_connector_modes] [CONNECTOR:86:eDP-1] probed modes :
&lt;7&gt; [341.890589] [drm:drm_mode_debug_printmodeline] Modeline "3200x1800": 60 373250 3200 3248 3280 3360 1800 1803 1808 1852 0x48 0xa
&lt;7&gt; [341.890602] [drm:drm_mode_debug_printmodeline] Modeline "3200x1800": 48 298600 3200 3248 3280 3360 1800 1803 1808 1852 0x40 0xa
&lt;4&gt; [341.890628] general protection fault: 0000 [#1] PREEMPT SMP PTI
&lt;4&gt; [341.890636] CPU: 0 PID: 508 Comm: kworker/0:4 Tainted: G     U  W         5.2.0-rc2-CI-CI_DRM_6175+ #1
&lt;4&gt; [341.890646] Hardware name: Dell Inc. XPS 13 9360/0823VW, BIOS 2.9.0 07/09/2018
&lt;4&gt; [341.890655] Workqueue: events output_poll_execute
&lt;4&gt; [341.890663] RIP: 0010:drm_setup_crtcs+0x13e/0xbe0
&lt;4&gt; [341.890669] Code: 00 41 8b 44 24 58 85 c0 0f 8e f9 01 00 00 44 8b 6c 24 20 44 8b 74 24 28 31 db 31 ed 49 8b 44 24 60 48 63 d5 44 89 ee 83 c5 01 &lt;48&gt; 8b 04 d0 44 89 f2 48 8b 38 48 8b 87 88 01 00 00 48 8b 40 20 e8
&lt;4&gt; [341.890686] RSP: 0018:ffffc9000033fd40 EFLAGS: 00010202
&lt;4&gt; [341.890692] RAX: 6b6b6b6b6b6b6b6b RBX: 0000000000000002 RCX: 0000000000000000
&lt;4&gt; [341.890700] RDX: 0000000000000001 RSI: 0000000000000c80 RDI: 00000000ffffffff
&lt;4&gt; [341.890707] RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
&lt;4&gt; [341.890715] R10: 0000000000000c80 R11: 0000000000000000 R12: ffff888267599fe8
&lt;4&gt; [341.890722] R13: 0000000000000c80 R14: 0000000000000708 R15: 0000000000000007
&lt;4&gt; [341.890730] FS:  0000000000000000(0000) GS:ffff888276200000(0000) knlGS:0000000000000000
&lt;4&gt; [341.890739] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
&lt;4&gt; [341.890745] CR2: 000055a4e064f4a0 CR3: 000000026d234003 CR4: 00000000003606f0
&lt;4&gt; [341.890752] Call Trace:
&lt;4&gt; [341.890760]  drm_fb_helper_hotplug_event.part.24+0x89/0xb0
&lt;4&gt; [341.890768]  drm_kms_helper_hotplug_event+0x21/0x30
&lt;4&gt; [341.890774]  output_poll_execute+0x9d/0x1a0
&lt;4&gt; [341.890782]  process_one_work+0x245/0x610
&lt;4&gt; [341.890790]  worker_thread+0x37/0x380
&lt;4&gt; [341.890796]  ? process_one_work+0x610/0x610
&lt;4&gt; [341.890802]  kthread+0x119/0x130
&lt;4&gt; [341.890808]  ? kthread_park+0x80/0x80
&lt;4&gt; [341.890815]  ret_from_fork+0x3a/0x50

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109964
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Imre Deak &lt;imre.deak@intel.com&gt;
Link: https://patchwork.freedesktop.org/patch/msgid/20190603135910.15979-2-chris@chris-wilson.co.uk
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: readd -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines</title>
<updated>2019-10-01T07:01:36+00:00</updated>
<author>
<name>Nick Desaulniers</name>
<email>ndesaulniers@google.com</email>
</author>
<published>2019-07-22T22:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3349449ae7305513694d5b5bda4434daae57708a'/>
<id>urn:sha1:3349449ae7305513694d5b5bda4434daae57708a</id>
<content type='text'>
[ Upstream commit 0f0727d971f6fdf8f1077180d495ddb9928f0c8b ]

arch/x86/Makefile disables SSE and SSE2 for the whole kernel.  The
AMDGPU drivers modified in this patch re-enable SSE but not SSE2.  Turn
on SSE2 to support emitting double precision floating point instructions
rather than calls to non-existent (usually available from gcc_s or
compiler_rt) floating point helper routines for Clang.

This was originally landed in:
commit 10117450735c ("drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines")
but reverted in:
commit 193392ed9f69 ("Revert "drm/amd/display: add -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines"")
due to bugreports from GCC builds. Add guards to only do so for Clang.

Link: https://bugs.freedesktop.org/show_bug.cgi?id=109487
Link: https://github.com/ClangBuiltLinux/linux/issues/327

Suggested-by: Sedat Dilek &lt;sedat.dilek@gmail.com&gt;
Suggested-by: Sami Tolvanen &lt;samitolvanen@google.com&gt;
Signed-off-by: Nick Desaulniers &lt;ndesaulniers@google.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/amd/display: Don't replace the dc_state for fast updates</title>
<updated>2019-10-01T07:01:35+00:00</updated>
<author>
<name>Nicholas Kazlauskas</name>
<email>nicholas.kazlauskas@amd.com</email>
</author>
<published>2019-07-31T14:33:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=606f7f9fc442bfe71518e807c1d09062d3103453'/>
<id>urn:sha1:606f7f9fc442bfe71518e807c1d09062d3103453</id>
<content type='text'>
commit bd200d190f45b62c006d1ad0a63eeffd87db7a47 upstream.

[Why]
DRM private objects have no hw_done/flip_done fencing mechanism on their
own and cannot be used to sequence commits accordingly.

When issuing commits that don't touch the same set of hardware resources
like page-flips on different CRTCs we can run into the issue below
because of this:

1. Client requests non-blocking Commit #1, has a new dc_state #1,
state is swapped, commit tail is deferred to work queue

2. Client requests non-blocking Commit #2, has a new dc_state #2,
state is swapped, commit tail is deferred to work queue

3. Commit #2 work starts, commit tail finishes,
atomic state is cleared, dc_state #1 is freed

4. Commit #1 work starts,
commit tail encounters null pointer deref on dc_state #1

In order to change the DC state as in the private object we need to
ensure that we wait for all outstanding commits to finish and that
any other pending commits must wait for the current one to finish as
well.

We do this for MEDIUM and FULL updates. But not for FAST updates, nor
would we want to since it would cause stuttering from the delays.

FAST updates that go through dm_determine_update_type_for_commit always
create a new dc_state and lock the DRM private object if there are
any changed planes.

We need the old state to validate, but we don't actually need the new
state here.

[How]
If the commit isn't a full update then the use after free can be
resolved by simply discarding the new state entirely and retaining
the existing one instead.

With this change the sequence above can be reexamined. Commit #2 will
still free Commit #1's reference, but before this happens we actually
added an additional reference as part of Commit #2.

If an update comes in during this that needs to change the dc_state
it will need to wait on Commit #1 and Commit #2 to finish. Then it'll
swap the state, finish the work in commit tail and drop the last
reference on Commit #2's dc_state.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204181
Fixes: 004b3938e637 ("drm/amd/display: Check scaling info when determing update type")

Signed-off-by: Nicholas Kazlauskas &lt;nicholas.kazlauskas@amd.com&gt;
Acked-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: David Francis &lt;david.francis@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/amd/display: Skip determining update type for async updates</title>
<updated>2019-10-01T07:01:35+00:00</updated>
<author>
<name>Nicholas Kazlauskas</name>
<email>nicholas.kazlauskas@amd.com</email>
</author>
<published>2019-07-31T13:45:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0365d15f565ae0c3c43f7a667a4fc4b31f2d27ea'/>
<id>urn:sha1:0365d15f565ae0c3c43f7a667a4fc4b31f2d27ea</id>
<content type='text'>
commit 43d10d30df156f7834fa91aecb69614fefc8bb0a upstream.

[Why]
By passing through the dm_determine_update_type_for_commit for atomic
commits that can be done asynchronously we are incurring a
performance penalty by locking access to the global private object
and holding that access until the end of the programming sequence.

This is also allocating a new large dc_state on every access in addition
to retaining all the references on each stream and plane until the end
of the programming sequence.

[How]
Shift the determination for async update before validation. Return early
if it's going to be an async update.

Signed-off-by: Nicholas Kazlauskas &lt;nicholas.kazlauskas@amd.com&gt;
Acked-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: David Francis &lt;david.francis@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/amd/display: Allow cursor async updates for framebuffer swaps</title>
<updated>2019-10-01T07:01:35+00:00</updated>
<author>
<name>Nicholas Kazlauskas</name>
<email>nicholas.kazlauskas@amd.com</email>
</author>
<published>2019-06-10T12:47:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=891eae79f7a53d95165d51de60ad3aab46fdc779'/>
<id>urn:sha1:891eae79f7a53d95165d51de60ad3aab46fdc779</id>
<content type='text'>
commit e16e37efb4c9eb7bcb9dab756c975040c5257e98 upstream.

[Why]
We previously allowed framebuffer swaps as async updates for cursor
planes but had to disable them due to a bug in DRM with async update
handling and incorrect ref counting. The check to block framebuffer
swaps has been added to DRM for a while now, so this check is redundant.

The real fix that allows this to properly in DRM has also finally been
merged and is getting backported into stable branches, so dropping
this now seems to be the right time to do so.

[How]
Drop the redundant check for old_fb != new_fb.

With the proper fix in DRM, this should also fix some cursor stuttering
issues with xf86-video-amdgpu since it double buffers the cursor.

IGT tests that swap framebuffers (-varying-size for example) should
also pass again.

Signed-off-by: Nicholas Kazlauskas &lt;nicholas.kazlauskas@amd.com&gt;
Acked-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: David Francis &lt;david.francis@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
