<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/gpu/drm/radeon/r600.c, branch linux-4.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.17.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2017-05-24T20:46:43Z</updated>
<entry>
<title>drm/radeon: Unbreak HPD handling for r600+</title>
<updated>2017-05-24T20:46:43Z</updated>
<author>
<name>Lyude</name>
<email>lyude@redhat.com</email>
</author>
<published>2017-05-11T23:31:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3d18e33735a02b1a90aecf14410bf3edbfd4d3dc'/>
<id>urn:sha1:3d18e33735a02b1a90aecf14410bf3edbfd4d3dc</id>
<content type='text'>
We end up reading the interrupt register for HPD5, and then writing it
to HPD6 which on systems without anything using HPD5 results in
permanently disabling hotplug on one of the display outputs after the
first time we acknowledge a hotplug interrupt from the GPU.

This code is really bad. But for now, let's just fix this. I will
hopefully have a large patch series to refactor all of this soon.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Lyude &lt;lyude@redhat.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>gpu: drm: amd/radeon: Convert printk(KERN_&lt;LEVEL&gt; to pr_&lt;level&gt;</title>
<updated>2017-03-30T03:53:24Z</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2017-02-28T12:55:52Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7ca85295d8cc280ea79cf6250c47363b7fd92f92'/>
<id>urn:sha1:7ca85295d8cc280ea79cf6250c47363b7fd92f92</id>
<content type='text'>
Use a more common logging style.

Miscellanea:

o Coalesce formats and realign arguments
o Neaten a few macros now using pr_&lt;level&gt;

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: squash lines for simple wrapper functions</title>
<updated>2016-09-15T14:39:37Z</updated>
<author>
<name>Masahiro Yamada</name>
<email>yamada.masahiro@socionext.com</email>
</author>
<published>2016-09-14T14:39:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0003b8d222879deb469c9dbf1c7961bdf81ec1d7'/>
<id>urn:sha1:0003b8d222879deb469c9dbf1c7961bdf81ec1d7</id>
<content type='text'>
Remove unneeded variables and assignments.

Reviewed-by: Gustavo Padovan &lt;gustavo.padovan@collabora.co.uk&gt;
Signed-off-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
Signed-off-by: Sean Paul &lt;seanpaul@chromium.org&gt;
Link: http://patchwork.freedesktop.org/patch/msgid/1473863952-7658-3-git-send-email-yamada.masahiro@socionext.com
</content>
</entry>
<entry>
<title>drm/radeon: switch UVD code to use UVD_NO_OP for padding</title>
<updated>2016-08-24T20:25:05Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2016-08-23T14:07:28Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=70a033d25b197b0a4e60509911195613cf28b57e'/>
<id>urn:sha1:70a033d25b197b0a4e60509911195613cf28b57e</id>
<content type='text'>
Replace packet2's with packet0 writes to UVD_NO_OP.  The
value written to UVD_NO_OP does not matter.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: don't include RADEON_HPD_NONE in HPD IRQ enable bitsets</title>
<updated>2016-05-02T19:25:40Z</updated>
<author>
<name>Nicolai Stange</name>
<email>nicstange@gmail.com</email>
</author>
<published>2016-03-22T21:05:27Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b2c0cbd657173f024138d6421774007690ceeffd'/>
<id>urn:sha1:b2c0cbd657173f024138d6421774007690ceeffd</id>
<content type='text'>
The values of all but the RADEON_HPD_NONE members of the radeon_hpd_id
enum transform 1:1 into bit positions within the 'enabled' bitset as
assembled by evergreen_hpd_init():

  enabled |= 1 &lt;&lt; radeon_connector-&gt;hpd.hpd;

However, if -&gt;hpd.hpd happens to equal RADEON_HPD_NONE == 0xff, UBSAN
reports

  UBSAN: Undefined behaviour in drivers/gpu/drm/radeon/evergreen.c:1867:16
  shift exponent 255 is too large for 32-bit type 'int'
  [...]
  Call Trace:
   [&lt;ffffffff818c4d35&gt;] dump_stack+0xbc/0x117
   [&lt;ffffffff818c4c79&gt;] ? _atomic_dec_and_lock+0x169/0x169
   [&lt;ffffffff819411bb&gt;] ubsan_epilogue+0xd/0x4e
   [&lt;ffffffff81941cbc&gt;] __ubsan_handle_shift_out_of_bounds+0x1fb/0x254
   [&lt;ffffffffa0ba7f2e&gt;] ? atom_execute_table+0x3e/0x50 [radeon]
   [&lt;ffffffff81941ac1&gt;] ? __ubsan_handle_load_invalid_value+0x158/0x158
   [&lt;ffffffffa0b87700&gt;] ? radeon_get_pll_use_mask+0x130/0x130 [radeon]
   [&lt;ffffffff81219930&gt;] ? wake_up_klogd_work_func+0x60/0x60
   [&lt;ffffffff8121a35e&gt;] ? vprintk_default+0x3e/0x60
   [&lt;ffffffffa0c603c4&gt;] evergreen_hpd_init+0x274/0x2d0 [radeon]
   [&lt;ffffffffa0c603c4&gt;] ? evergreen_hpd_init+0x274/0x2d0 [radeon]
   [&lt;ffffffffa0bd196e&gt;] radeon_modeset_init+0x8ce/0x18d0 [radeon]
   [&lt;ffffffffa0b71d86&gt;] radeon_driver_load_kms+0x186/0x350 [radeon]
   [&lt;ffffffffa03b6b16&gt;] drm_dev_register+0xc6/0x100 [drm]
   [&lt;ffffffffa03bc8c4&gt;] drm_get_pci_dev+0xe4/0x490 [drm]
   [&lt;ffffffff814b83f0&gt;] ? kfree+0x220/0x370
   [&lt;ffffffffa0b687c2&gt;] radeon_pci_probe+0x112/0x140 [radeon]
   [...]
  =====================================================================
  radeon 0000:01:00.0: No connectors reported connected with modes

At least on x86, there should be no user-visible impact as there

  1 &lt;&lt; 0xff == 1 &lt;&lt; (0xff &amp; 31) == 1 &lt;&lt; 31

holds and 31 &gt; RADEON_MAX_HPD_PINS. Thus, this patch is a cosmetic one.

All of the above applies analogously to evergreen_hpd_fini(),
r100_hpd_init(), r100_hpd_fini(), r600_hpd_init(), r600_hpd_fini(),
rs600_hpd_init() and rs600_hpd_fini()

Silence UBSAN by checking -&gt;hpd.hpd for RADEON_HPD_NONE before oring it
into the 'enabled' bitset in the *_init()- or the 'disabled' bitset in
the *_fini()-functions respectively.

Signed-off-by: Nicolai Stange &lt;nicstange@gmail.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: allow to force hard GPU reset.</title>
<updated>2016-05-02T17:08:54Z</updated>
<author>
<name>Jérome Glisse</name>
<email>jglisse@redhat.com</email>
</author>
<published>2016-03-18T15:58:38Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=71fe289970430fca85c7c8da5a829e65764e081b'/>
<id>urn:sha1:71fe289970430fca85c7c8da5a829e65764e081b</id>
<content type='text'>
In some cases, like when freezing for hibernation, we need to be
able to force hard reset even if no engine are stuck. This patch
add a bool option to current asic reset callback to allow to force
hard reset on asic that supports it.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Jérôme Glisse &lt;jglisse@redhat.com&gt;
Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: consolidate r600 uvd initialization and startup code.</title>
<updated>2016-05-02T17:08:47Z</updated>
<author>
<name>Jérome Glisse</name>
<email>jglisse@redhat.com</email>
</author>
<published>2016-03-18T15:58:26Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c91f93683b4eeb5bd2488947c6c581c8cf638650'/>
<id>urn:sha1:c91f93683b4eeb5bd2488947c6c581c8cf638650</id>
<content type='text'>
This match the exact same control flow as existing code. It just
use goto instead of multiple levels of if/else. It also clarify
early initialization failures by clearing rdev-&gt;has_uvd doing so
does not change end result from hardware point of view, it only
avoids printing more error messages down the line and thus only
the original error is reported.

Acked-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Jérôme Glisse &lt;jglisse@redhat.com&gt;
Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Cc: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: fix indentation.</title>
<updated>2016-03-16T22:08:06Z</updated>
<author>
<name>Jérome Glisse</name>
<email>jglisse@redhat.com</email>
</author>
<published>2016-03-16T11:56:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3cf8bb1ad1b8266ae12a0fbdfa79cdbdc2168a3f'/>
<id>urn:sha1:3cf8bb1ad1b8266ae12a0fbdfa79cdbdc2168a3f</id>
<content type='text'>
I hate doing this but it hurts my eyes to go over code that does not
comply with indentation rules. Only thing that is not only space change
is in atom.c all other files are space indentation issues.

Acked-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Jérôme Glisse &lt;jglisse@redhat.com&gt;
Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: Avoid double gpu reset by adding a timeout on IB ring tests.</title>
<updated>2016-02-10T19:17:15Z</updated>
<author>
<name>Matthew Dawson</name>
<email>matthew@mjdsystems.ca</email>
</author>
<published>2016-02-07T21:51:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=04db4caf5c836c211977a54c9218f2cdee14897f'/>
<id>urn:sha1:04db4caf5c836c211977a54c9218f2cdee14897f</id>
<content type='text'>
When the radeon driver resets a gpu, it attempts to test whether all the
rings can successfully handle an IB.  If these rings fail to respond, the
process will wait forever.  Another gpu reset can't happen at this point,
as the current reset holds a lock required to do so.  Instead, make all
the IB tests run with a timeout, so the system can attempt to recover
in this case.

While this doesn't fix the underlying issue with card resets failing, it
gives the system a higher chance of recovering.  These timeouts have been
confirmed to help both a Tathi and Hawaii card recover after a gpu reset.

This also adds a new function, radeon_fence_wait_timeout, that behaves like
fence_wait_timeout.  It is used instead of fence_wait_timeout as it continues
to work during a reset.  radeon_fence_wait is changed to be implemented
using this function.

V2:
 - Changed the timeout to 1s, as the default 10s from radeon_wait_timeout was
too long.  A timeout of 100ms was tested and found to be too short.
 - Changed radeon_fence_wait_timeout to behave more like fence_wait_timeout.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Matthew Dawson &lt;matthew@mjdsystems.ca&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
<entry>
<title>drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt</title>
<updated>2015-12-04T18:09:12Z</updated>
<author>
<name>Lyude</name>
<email>cpaul@redhat.com</email>
</author>
<published>2015-12-03T23:26:07Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=cb5d41664375ad4fbe47bdae745bb6fe8d837e68'/>
<id>urn:sha1:cb5d41664375ad4fbe47bdae745bb6fe8d837e68</id>
<content type='text'>
HPD signals on DVI ports can be fired off before the pins required for
DDC probing actually make contact, due to the pins for HPD making
contact first. This results in a HPD signal being asserted but DDC
probing failing, resulting in hotplugging occasionally failing.

This is somewhat rare on most cards (depending on what angle you plug
the DVI connector in), but on some cards it happens constantly. The
Radeon R5 on the machine used for testing this patch for instance, runs
into this issue just about every time I try to hotplug a DVI monitor and
as a result hotplugging almost never works.

Rescheduling the hotplug work for a second when we run into an HPD
signal with a failing DDC probe usually gives enough time for the rest
of the connector's pins to make contact, and fixes this issue.

Reviewed-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Lyude &lt;cpaul@redhat.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
</content>
</entry>
</feed>
