<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/gpu/drm, branch v4.6-rc5</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>Merge branch 'drm-fixes-4.6' of git://people.freedesktop.org/~agd5f/linux into drm-fixes</title>
<updated>2016-04-22T00:39:26+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-04-22T00:39:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=18cdfe751f26ffa610f2a7b59775c5cc4c1c9619'/>
<id>18cdfe751f26ffa610f2a7b59775c5cc4c1c9619</id>
<content type='text'>
Misc radeon and amdgpu bug fixes for 4.6.

* 'drm-fixes-4.6' of git://people.freedesktop.org/~agd5f/linux:
  amdgpu/uvd: add uvd fw version for amdgpu
  drm/amdgpu: forbid mapping of userptr bo through radeon device file
  drm/radeon: forbid mapping of userptr bo through radeon device file
  drm/amdgpu: bump the afmt limit for CZ, ST, Polaris
  drm/amdgpu: use defines for CRTCs and AMFT blocks
  drm/radeon: print a message if ATPX dGPU power control is missing
  Revert "drm/radeon: disable runtime pm on PX laptops without dGPU power control"
  drm/amdgpu/acp: fix resume on CZ systems with AZ audio
  drm/radeon: add a quirk for a XFX R9 270X
  drm/radeon: print pci revision as well as pci ids on driver load
  drm/amdgpu: when suspending, if uvd/vce was running. need to cancel delay work.
  drm/radeon: fix initial connector audio value
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Misc radeon and amdgpu bug fixes for 4.6.

* 'drm-fixes-4.6' of git://people.freedesktop.org/~agd5f/linux:
  amdgpu/uvd: add uvd fw version for amdgpu
  drm/amdgpu: forbid mapping of userptr bo through radeon device file
  drm/radeon: forbid mapping of userptr bo through radeon device file
  drm/amdgpu: bump the afmt limit for CZ, ST, Polaris
  drm/amdgpu: use defines for CRTCs and AMFT blocks
  drm/radeon: print a message if ATPX dGPU power control is missing
  Revert "drm/radeon: disable runtime pm on PX laptops without dGPU power control"
  drm/amdgpu/acp: fix resume on CZ systems with AZ audio
  drm/radeon: add a quirk for a XFX R9 270X
  drm/radeon: print pci revision as well as pci ids on driver load
  drm/amdgpu: when suspending, if uvd/vce was running. need to cancel delay work.
  drm/radeon: fix initial connector audio value
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'linux-4.6' of git://github.com/skeggsb/linux into drm-fixes</title>
<updated>2016-04-22T00:09:33+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-04-22T00:09:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=005e8dad01d2a7b98948927d7e0c4c7c61ec2d69'/>
<id>005e8dad01d2a7b98948927d7e0c4c7c61ec2d69</id>
<content type='text'>
transform feedback fix.

* 'linux-4.6' of git://github.com/skeggsb/linux:
  drm/nouveau/gr/gf100: select a stream master to fixup tfb offset queries
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
transform feedback fix.

* 'linux-4.6' of git://github.com/skeggsb/linux:
  drm/nouveau/gr/gf100: select a stream master to fixup tfb offset queries
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/nouveau/gr/gf100: select a stream master to fixup tfb offset queries</title>
<updated>2016-04-22T00:08:05+00:00</updated>
<author>
<name>Ben Skeggs</name>
<email>bskeggs@redhat.com</email>
</author>
<published>2016-04-22T00:05:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=28dca90533750c7e31e8641c3df426bad9c12941'/>
<id>28dca90533750c7e31e8641c3df426bad9c12941</id>
<content type='text'>
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
Cc: stable@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
Cc: stable@vger.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>amdgpu/uvd: add uvd fw version for amdgpu</title>
<updated>2016-04-22T00:03:47+00:00</updated>
<author>
<name>Sonny Jiang</name>
<email>sonny.jiang@amd.com</email>
</author>
<published>2016-04-18T20:05:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=562e2689baebaa2ac25b7ec934385480ed1cb7d6'/>
<id>562e2689baebaa2ac25b7ec934385480ed1cb7d6</id>
<content type='text'>
Was previously always hardcoded to 0.

Signed-off-by: Sonny Jiang &lt;sonny.jiang@amd.com&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Was previously always hardcoded to 0.

Signed-off-by: Sonny Jiang &lt;sonny.jiang@amd.com&gt;
Reviewed-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/amdgpu: forbid mapping of userptr bo through radeon device file</title>
<updated>2016-04-22T00:03:47+00:00</updated>
<author>
<name>Jérôme Glisse</name>
<email>jglisse@redhat.com</email>
</author>
<published>2016-04-19T13:07:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=054892ed6a1645e265bc35641c2a96433a051453'/>
<id>054892ed6a1645e265bc35641c2a96433a051453</id>
<content type='text'>
Allowing userptr bo which are basicly a list of page from some vma
(so either anonymous page or file backed page) would lead to serious
corruption of kernel structures and counters (because we overwrite
the page-&gt;mapping field when mapping buffer).

This will already block if the buffer was populated before anyone does
try to mmap it because then TTM_PAGE_FLAG_SG would be set in in the
ttm_tt flags. But that flag is check before ttm_tt_populate in the ttm
vm fault handler.

So to be safe just add a check to verify_access() callback.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Jérôme Glisse &lt;jglisse@redhat.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allowing userptr bo which are basicly a list of page from some vma
(so either anonymous page or file backed page) would lead to serious
corruption of kernel structures and counters (because we overwrite
the page-&gt;mapping field when mapping buffer).

This will already block if the buffer was populated before anyone does
try to mmap it because then TTM_PAGE_FLAG_SG would be set in in the
ttm_tt flags. But that flag is check before ttm_tt_populate in the ttm
vm fault handler.

So to be safe just add a check to verify_access() callback.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Jérôme Glisse &lt;jglisse@redhat.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/radeon: forbid mapping of userptr bo through radeon device file</title>
<updated>2016-04-22T00:03:46+00:00</updated>
<author>
<name>Jérôme Glisse</name>
<email>jglisse@redhat.com</email>
</author>
<published>2016-04-19T13:07:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b5dcec693f87cb8475f2291c0075b2422addd3d6'/>
<id>b5dcec693f87cb8475f2291c0075b2422addd3d6</id>
<content type='text'>
Allowing userptr bo which are basicly a list of page from some vma
(so either anonymous page or file backed page) would lead to serious
corruption of kernel structures and counters (because we overwrite
the page-&gt;mapping field when mapping buffer).

This will already block if the buffer was populated before anyone does
try to mmap it because then TTM_PAGE_FLAG_SG would be set in in the
ttm_tt flags. But that flag is check before ttm_tt_populate in the ttm
vm fault handler.

So to be safe just add a check to verify_access() callback.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Jérôme Glisse &lt;jglisse@redhat.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allowing userptr bo which are basicly a list of page from some vma
(so either anonymous page or file backed page) would lead to serious
corruption of kernel structures and counters (because we overwrite
the page-&gt;mapping field when mapping buffer).

This will already block if the buffer was populated before anyone does
try to mmap it because then TTM_PAGE_FLAG_SG would be set in in the
ttm_tt flags. But that flag is check before ttm_tt_populate in the ttm
vm fault handler.

So to be safe just add a check to verify_access() callback.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Jérôme Glisse &lt;jglisse@redhat.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/amdgpu: bump the afmt limit for CZ, ST, Polaris</title>
<updated>2016-04-22T00:03:46+00:00</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2016-04-18T22:25:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=83c5cda2ccf40a7a7e4bb674321509b346e23d5a'/>
<id>83c5cda2ccf40a7a7e4bb674321509b346e23d5a</id>
<content type='text'>
Fixes array overflow on these chips.

Reviewed-by: Harry Wentland &lt;harry.wentland@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes array overflow on these chips.

Reviewed-by: Harry Wentland &lt;harry.wentland@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/amdgpu: use defines for CRTCs and AMFT blocks</title>
<updated>2016-04-22T00:03:45+00:00</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2016-04-18T22:09:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3ea25f858fd5aeee888059952bbb8e910541eebb'/>
<id>3ea25f858fd5aeee888059952bbb8e910541eebb</id>
<content type='text'>
Prerequiste for the next patch which ups the limits.

Reviewed-by: Harry Wentland &lt;harry.wentland@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Prerequiste for the next patch which ups the limits.

Reviewed-by: Harry Wentland &lt;harry.wentland@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/dp/mst: Validate port in drm_dp_payload_send_msg()</title>
<updated>2016-04-21T23:53:17+00:00</updated>
<author>
<name>cpaul@redhat.com</name>
<email>cpaul@redhat.com</email>
</author>
<published>2016-04-04T23:58:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=deba0a2af9592b2022a0bce7b085a318b53ce1db'/>
<id>deba0a2af9592b2022a0bce7b085a318b53ce1db</id>
<content type='text'>
With the joys of things running concurrently, there's always a chance
that the port we get passed in drm_dp_payload_send_msg() isn't actually
valid anymore. Because of this, we need to make sure we validate the
reference to the port before we use it otherwise we risk running into
various race conditions. For instance, on the Dell MST monitor I have
here for testing, hotplugging it enough times causes us to kernel panic:

[drm:intel_mst_enable_dp] 1
[drm:drm_dp_update_payload_part2] payload 0 1
[drm:intel_get_hpd_pins] hotplug event received, stat 0x00200000, dig 0x10101011, pins 0x00000020
[drm:intel_hpd_irq_handler] digital hpd port B - short
[drm:intel_dp_hpd_pulse] got hpd irq on port B - short
[drm:intel_dp_check_mst_status] got esi 00 10 00
[drm:drm_dp_update_payload_part2] payload 1 1
general protection fault: 0000 [#1] SMP
…
Call Trace:
 [&lt;ffffffffa012b632&gt;] drm_dp_update_payload_part2+0xc2/0x130 [drm_kms_helper]
 [&lt;ffffffffa032ef08&gt;] intel_mst_enable_dp+0xf8/0x180 [i915]
 [&lt;ffffffffa0310dbd&gt;] haswell_crtc_enable+0x3ed/0x8c0 [i915]
 [&lt;ffffffffa030c84d&gt;] intel_atomic_commit+0x5ad/0x1590 [i915]
 [&lt;ffffffffa01db877&gt;] ? drm_atomic_set_crtc_for_connector+0x57/0xe0 [drm]
 [&lt;ffffffffa01dc4e7&gt;] drm_atomic_commit+0x37/0x60 [drm]
 [&lt;ffffffffa0130a3a&gt;] drm_atomic_helper_set_config+0x7a/0xb0 [drm_kms_helper]
 [&lt;ffffffffa01cc482&gt;] drm_mode_set_config_internal+0x62/0x100 [drm]
 [&lt;ffffffffa01d02ad&gt;] drm_mode_setcrtc+0x3cd/0x4e0 [drm]
 [&lt;ffffffffa01c18e3&gt;] drm_ioctl+0x143/0x510 [drm]
 [&lt;ffffffffa01cfee0&gt;] ? drm_mode_setplane+0x1b0/0x1b0 [drm]
 [&lt;ffffffff810f79a7&gt;] ? hrtimer_start_range_ns+0x1b7/0x3a0
 [&lt;ffffffff81212962&gt;] do_vfs_ioctl+0x92/0x570
 [&lt;ffffffff81590852&gt;] ? __sys_recvmsg+0x42/0x80
 [&lt;ffffffff81212eb9&gt;] SyS_ioctl+0x79/0x90
 [&lt;ffffffff816b4e32&gt;] entry_SYSCALL_64_fastpath+0x1a/0xa4
RIP  [&lt;ffffffffa012b026&gt;] drm_dp_payload_send_msg+0x146/0x1f0 [drm_kms_helper]

Which occurs because of the hotplug event shown in the log, which ends
up causing DRM's dp helpers to drop the port we're updating the payload
on and panic.

CC: stable@vger.kernel.org
Signed-off-by: Lyude &lt;cpaul@redhat.com&gt;
Reviewed-by: David Airlie &lt;airlied@linux.ie&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With the joys of things running concurrently, there's always a chance
that the port we get passed in drm_dp_payload_send_msg() isn't actually
valid anymore. Because of this, we need to make sure we validate the
reference to the port before we use it otherwise we risk running into
various race conditions. For instance, on the Dell MST monitor I have
here for testing, hotplugging it enough times causes us to kernel panic:

[drm:intel_mst_enable_dp] 1
[drm:drm_dp_update_payload_part2] payload 0 1
[drm:intel_get_hpd_pins] hotplug event received, stat 0x00200000, dig 0x10101011, pins 0x00000020
[drm:intel_hpd_irq_handler] digital hpd port B - short
[drm:intel_dp_hpd_pulse] got hpd irq on port B - short
[drm:intel_dp_check_mst_status] got esi 00 10 00
[drm:drm_dp_update_payload_part2] payload 1 1
general protection fault: 0000 [#1] SMP
…
Call Trace:
 [&lt;ffffffffa012b632&gt;] drm_dp_update_payload_part2+0xc2/0x130 [drm_kms_helper]
 [&lt;ffffffffa032ef08&gt;] intel_mst_enable_dp+0xf8/0x180 [i915]
 [&lt;ffffffffa0310dbd&gt;] haswell_crtc_enable+0x3ed/0x8c0 [i915]
 [&lt;ffffffffa030c84d&gt;] intel_atomic_commit+0x5ad/0x1590 [i915]
 [&lt;ffffffffa01db877&gt;] ? drm_atomic_set_crtc_for_connector+0x57/0xe0 [drm]
 [&lt;ffffffffa01dc4e7&gt;] drm_atomic_commit+0x37/0x60 [drm]
 [&lt;ffffffffa0130a3a&gt;] drm_atomic_helper_set_config+0x7a/0xb0 [drm_kms_helper]
 [&lt;ffffffffa01cc482&gt;] drm_mode_set_config_internal+0x62/0x100 [drm]
 [&lt;ffffffffa01d02ad&gt;] drm_mode_setcrtc+0x3cd/0x4e0 [drm]
 [&lt;ffffffffa01c18e3&gt;] drm_ioctl+0x143/0x510 [drm]
 [&lt;ffffffffa01cfee0&gt;] ? drm_mode_setplane+0x1b0/0x1b0 [drm]
 [&lt;ffffffff810f79a7&gt;] ? hrtimer_start_range_ns+0x1b7/0x3a0
 [&lt;ffffffff81212962&gt;] do_vfs_ioctl+0x92/0x570
 [&lt;ffffffff81590852&gt;] ? __sys_recvmsg+0x42/0x80
 [&lt;ffffffff81212eb9&gt;] SyS_ioctl+0x79/0x90
 [&lt;ffffffff816b4e32&gt;] entry_SYSCALL_64_fastpath+0x1a/0xa4
RIP  [&lt;ffffffffa012b026&gt;] drm_dp_payload_send_msg+0x146/0x1f0 [drm_kms_helper]

Which occurs because of the hotplug event shown in the log, which ends
up causing DRM's dp helpers to drop the port we're updating the payload
on and panic.

CC: stable@vger.kernel.org
Signed-off-by: Lyude &lt;cpaul@redhat.com&gt;
Reviewed-by: David Airlie &lt;airlied@linux.ie&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'linux-4.6' of git://github.com/skeggsb/linux into drm-fixes</title>
<updated>2016-04-21T23:53:07+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2016-04-21T23:53:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3addc4e3a7142fcb9782c1d8ab70c63ebbd6d803'/>
<id>3addc4e3a7142fcb9782c1d8ab70c63ebbd6d803</id>
<content type='text'>
Single nouveau regression fix
* 'linux-4.6' of git://github.com/skeggsb/linux:
  drm/nouveau/kms: fix setting of default values for dithering properties
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Single nouveau regression fix
* 'linux-4.6' of git://github.com/skeggsb/linux:
  drm/nouveau/kms: fix setting of default values for dithering properties
</pre>
</div>
</content>
</entry>
</feed>
