<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/gpu/drm/radeon/si.c, branch linux-3.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-06-13T17:49:28Z</updated>
<entry>
<title>radeon: Fix system hang issue when using KMS with older cards</title>
<updated>2013-06-13T17:49:28Z</updated>
<author>
<name>Adis Hamzić</name>
</author>
<published>2013-06-02T14:47:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e335ccae2ae4caef26a1e81711c44aec1cc83bd2'/>
<id>urn:sha1:e335ccae2ae4caef26a1e81711c44aec1cc83bd2</id>
<content type='text'>
commit e49f3959a96dc279860af7e86e6dbcfda50580a5 upstream.

The current radeon driver initialization routines, when using KMS, are written
so that the IRQ installation routine is called before initializing the WB buffer
and the CP rings. With some ASICs, though, the IRQ routine tries to access the
GFX_INDEX ring causing a call to RREG32 with the value of -1 in
radeon_fence_read. This, in turn causes the system to completely hang with some
cards, requiring a hard reset.

A call stack that can cause such a hang looks like this (using rv515 ASIC for the
example here):
 * rv515_init (rv515.c)
 * radeon_irq_kms_init (radeon_irq_kms.c)
 * drm_irq_install (drm_irq.c)
 * radeon_driver_irq_preinstall_kms (radeon_irq_kms.c)
 * rs600_irq_process (rs600.c)
 * radeon_fence_process - due to SW interrupt (radeon_fence.c)
 * radeon_fence_read (radeon_fence.c)
 * hang due to RREG32(-1)

The patch moves the IRQ installation to the card startup routine, after the ring
has been initialized, but before the IRQ has been set. This fixes the issue, but
requires a check to see if the IRQ is already installed, as is the case in the
system resume codepath.
I have tested the patch on three machines using the rv515, the rv770 and the
evergreen ASIC. They worked without issues.

This seems to be a known issue and has been reported on several bug tracking
sites by various distributions (see links below). Most of reports recommend
booting the system with KMS disabled and then enabling KMS by reloading the
radeon module. For some reason, this was indeed a usable workaround, however,
UMS is now deprecated and disabled by default.

Bug reports:
https://bugzilla.redhat.com/show_bug.cgi?id=845745
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/561789
https://bbs.archlinux.org/viewtopic.php?id=156964

Signed-off-by: Adis Hamzić &lt;adis@hamzadis.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;

</content>
</entry>
<entry>
<title>drm/radeon: fix typo in cu_per_sh on verde</title>
<updated>2013-06-07T19:53:03Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2013-05-21T17:35:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d606428b9959595df1443509386cb1b0af6ebdc5'/>
<id>urn:sha1:d606428b9959595df1443509386cb1b0af6ebdc5</id>
<content type='text'>
commit 468ef1a58c9268ac9709350bf95eaf1c22a69f29 upstream.

Should be 5 rather than 2.

Noticed by sroland and glisse on IRC.

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/radeon: Fix VRAM size calculation for VRAM &gt;= 4GB</title>
<updated>2013-05-24T18:36:03Z</updated>
<author>
<name>Niels Ole Salscheider</name>
</author>
<published>2013-05-18T19:19:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a7656384c9590f293e1e8cb11acb875322b8ec41'/>
<id>urn:sha1:a7656384c9590f293e1e8cb11acb875322b8ec41</id>
<content type='text'>
commit fc986034540102cd090237bf3f70262e1ae80d9c upstream.

Add ULL prefix to avoid overflow.

Signed-off-by: Niels Ole Salscheider &lt;niels_ole@salscheider-online.de&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/radeon: fix typo in si_select_se_sh()</title>
<updated>2013-05-11T14:18:34Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2013-04-18T20:26:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d388e85d52a871bedd7dbda4a54e6d485dd89520'/>
<id>urn:sha1:d388e85d52a871bedd7dbda4a54e6d485dd89520</id>
<content type='text'>
commit 79b52d6a7085a3e430c6de450a5847fdbe04159b upstream.

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/radeon/dce6: add missing display reg for tiling setup</title>
<updated>2013-05-11T14:18:31Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2013-04-05T14:28:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=698733fbe19f26b0fd0e0615f9999aacfd935be2'/>
<id>urn:sha1:698733fbe19f26b0fd0e0615f9999aacfd935be2</id>
<content type='text'>
commit 7c1c7c18fc752b2a1d07597286467ef186312463 upstream.

A new tiling config register for the display blocks was
added on DCE6.

May fix:
https://bugs.freedesktop.org/show_bug.cgi?id=62889
https://bugs.freedesktop.org/show_bug.cgi?id=57919

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/radeon: fix S/R on VM systems (cayman/TN/SI)</title>
<updated>2013-03-15T22:47:16Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2013-03-11T19:32:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fa3daf9aa74a3ac1c87d8188a43d283d06720032'/>
<id>urn:sha1:fa3daf9aa74a3ac1c87d8188a43d283d06720032</id>
<content type='text'>
We weren't properly tearing down the VM sub-alloctor
on suspend leading to bogus VM PTs on resume.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=60439

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Tested-by: Dmitry Cherkasov &lt;Dmitrii.Cherkasov@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>drm/radeon: skip MC reset as it's probably not hung</title>
<updated>2013-03-07T17:58:58Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2013-02-28T15:03:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d808fc882928bfe3cab87dd960ca28715e461ce4'/>
<id>urn:sha1:d808fc882928bfe3cab87dd960ca28715e461ce4</id>
<content type='text'>
The MC is mostly likely busy (e.g., display requests), not hung
so no need to reset it.  Doing an MC reset is tricky and not
particularly reliable.  Fixes hangs in certain cases.

Reported-by: Josh Boyer &lt;jwboyer@gmail.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: switch get_gpu_clock() to a callback (v2)</title>
<updated>2013-02-20T13:51:21Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2013-01-24T15:35:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d0418894142f88041d2b7b5aa4f8bf3178d89514'/>
<id>urn:sha1:d0418894142f88041d2b7b5aa4f8bf3178d89514</id>
<content type='text'>
Cleans up the code for future asics

v2: rebase, fix some missing radeon_asic updates

Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: add a asic callback to get the xclk</title>
<updated>2013-02-20T13:51:20Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2013-02-14T15:04:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=454d2e2a32f02a4f8e0364ba0e8ce4f8dbe9810c'/>
<id>urn:sha1:454d2e2a32f02a4f8e0364ba0e8ce4f8dbe9810c</id>
<content type='text'>
This is required to get the reference clock used
by the gfx engine for things like timestamps. Fixes
support for GL extensions the use timestamps on
certain boards.

Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: add ucode loading support for Oland</title>
<updated>2013-02-02T00:34:42Z</updated>
<author>
<name>Alex Deucher</name>
</author>
<published>2012-07-26T22:36:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bcc7f5d24dddfbe75893e25d84ebf9d7579c34c1'/>
<id>urn:sha1:bcc7f5d24dddfbe75893e25d84ebf9d7579c34c1</id>
<content type='text'>
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
</feed>
