<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpu/drm, branch v3.0.89</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/gpu/drm?h=v3.0.89</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/gpu/drm?h=v3.0.89'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-08-04T07:43:39Z</updated>
<entry>
<title>drm/radeon/atom: initialize more atom interpretor elements to 0</title>
<updated>2013-08-04T07:43:39Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2013-07-30T04:22:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6ec322493ae29932c23a20ad015921fe133b9ff8'/>
<id>urn:sha1:6ec322493ae29932c23a20ad015921fe133b9ff8</id>
<content type='text'>
commit 42a21826dc54583cdb79cc8477732e911ac9c376 upstream.

The ProcessAuxChannel table on some rv635 boards assumes
the divmul members are initialized to 0 otherwise we get
an invalid fb offset since it has a bad mask set when
setting the fb base.  While here initialize all the
atom interpretor elements to 0.

Fixes:
https://bugzilla.kernel.org/show_bug.cgi?id=60639

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: improve dac adjust heuristics for legacy pdac</title>
<updated>2013-08-04T07:43:38Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2013-07-19T21:44:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e0d2313f66fea2e8a5286d5ccebb057810ad4e9b'/>
<id>urn:sha1:e0d2313f66fea2e8a5286d5ccebb057810ad4e9b</id>
<content type='text'>
commit 03ed8cf9b28d886c64c7e705c7bb1a365fd8fb95 upstream.

Hopefully avoid more quirks in the future due to bogus
vbios dac data.

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 combios tables on older cards</title>
<updated>2013-08-04T07:43:37Z</updated>
<author>
<name>Mark Kettenis</name>
<email>kettenis@openbsd.org</email>
</author>
<published>2013-07-21T20:44:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=720c2af54ebce30c402581384e2287e66b4dee8c'/>
<id>urn:sha1:720c2af54ebce30c402581384e2287e66b4dee8c</id>
<content type='text'>
commit cef1d00cd56f600121ad121875655ad410a001b8 upstream.

Noticed that my old Radeon 7500 hung after printing

   drm: GPU not posted. posting now...

when it wasn't selected as the primary card the BIOS.  Some digging
revealed that it was hanging in combios_parse_mmio_table() while
parsing the ASIC INIT 3 table.  Looking at the BIOS ROM for the card,
it becomes obvious that there is no ASIC INIT 3 table in the BIOS.
The code is just processing random garbage.  No surprise it hangs!

Why do I say that there is no ASIC INIT 3 table is the BIOS?  This
table is found through the MISC INFO table.  The MISC INFO table can
be found at offset 0x5e in the COMBIOS header.  But the header is
smaller than that.  The COMBIOS header starts at offset 0x126.  The
standard PCI Data Structure (the bit that starts with 'PCIR') lives at
offset 0x180.  That means that the COMBIOS header can not be larger
than 0x5a bytes and therefore cannot contain a MISC INFO table.

I looked at a dozen or so BIOS images, some my own, some downloaded from:

    &lt;http://www.techpowerup.com/vgabios/index.php?manufacturer=ATI&amp;page=1&gt;

It is fairly obvious that the size of the COMBIOS header can be found
at offset 0x6 of the header.  Not sure if it is a 16-bit number or
just an 8-bit number, but that doesn't really matter since the tables
seems to be always smaller than 256 bytes.

So I think combios_get_table_offset() should check if the requested
table is present.  This can be done by checking the offset against the
size of the header.  See the diff below.  The diff is against the WIP
OpenBSD codebase that roughly corresponds to Linux 3.8.13 at this
point.  But I don't think this bit of the code changed much since
then.

For what it is worth:

Signed-off-by: Mark Kettenis &lt;kettenis@openbsd.org&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/i915: prefer VBT modes for SVDO-LVDS over EDID</title>
<updated>2013-06-20T18:28:20Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2013-06-10T07:47:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bac5719cdfb081dd68b0eeef7d9796c15fc29811'/>
<id>urn:sha1:bac5719cdfb081dd68b0eeef7d9796c15fc29811</id>
<content type='text'>
commit c3456fb3e4712d0448592af3c5d644c9472cd3c1 upstream.

In

commit 53d3b4d7778daf15900867336c85d3f8dd70600c
Author: Egbert Eich &lt;eich@suse.de&gt;
Date:   Tue Jun 4 17:13:21 2013 +0200

    drm/i915/sdvo: Use &amp;intel_sdvo-&gt;ddc instead of intel_sdvo-&gt;i2c for DDC

Egbert Eich fixed a long-standing bug where we simply used a
non-working i2c controller to read the EDID for SDVO-LVDS panels.
Unfortunately some machines seem to not be able to cope with the mode
provided in the EDID. Specifically they seem to not be able to cope
with a 4x pixel mutliplier instead of a 2x one, which seems to have
been worked around by slightly changing the panels native mode in the
VBT so that the dotclock is just barely above 50MHz.

Since it took forever to notice the breakage it's fairly safe to
assume that at least for SDVO-LVDS panels the VBT contains fairly sane
data. So just switch around the order and use VBT modes first.

v2: Also add EDID modes just in case, and spell Egbert correctly.

v3: Elaborate a bit more about what's going on on Chris' machine.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65524
Reported-and-tested-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Egbert Eich &lt;eich@suse.de&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/i915/sdvo: Use &amp;intel_sdvo-&gt;ddc instead of intel_sdvo-&gt;i2c for DDC.</title>
<updated>2013-06-13T16:25:09Z</updated>
<author>
<name>Egbert Eich</name>
<email>eich@suse.de</email>
</author>
<published>2013-06-04T15:13:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c4c2a7db886d6a7bb562fe5eebbb74ba043745b2'/>
<id>urn:sha1:c4c2a7db886d6a7bb562fe5eebbb74ba043745b2</id>
<content type='text'>
commit 53d3b4d7778daf15900867336c85d3f8dd70600c upstream.

In intel_sdvo_get_lvds_modes() the wrong i2c adapter record is used
for DDC. Thus the code will always have to rely on a LVDS panel
mode supplied by VBT.
In most cases this succeeds, so this didn't get detected for quite
a while.

This regression seems to have been introduced in

commit f899fc64cda8569d0529452aafc0da31c042df2e
Author: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Date:   Tue Jul 20 15:44:45 2010 -0700

    drm/i915: use GMBUS to manage i2c links

Signed-off-by: Egbert Eich &lt;eich@suse.de&gt;
Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
[danvet: Add note about which commit likely introduced this issue.]
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm: fix a use-after-free when GPU acceleration disabled</title>
<updated>2013-06-13T16:25:09Z</updated>
<author>
<name>Huacai Chen</name>
<email>chenhc@lemote.com</email>
</author>
<published>2013-05-21T06:23:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ad712863393b6d3b772529c1726b3aa3375e3fc1'/>
<id>urn:sha1:ad712863393b6d3b772529c1726b3aa3375e3fc1</id>
<content type='text'>
commit b7ea85a4fed37835eec78a7be3039c8dc22b8178 upstream.

When GPU acceleration is disabled, drm_vblank_cleanup() will free the
vblank-related data, such as vblank_refcount, vblank_inmodeset, etc.
But we found that drm_vblank_post_modeset() may be called after the
cleanup, which use vblank_refcount and vblank_inmodeset. And this will
cause a kernel panic.

Fix this by return immediately if dev-&gt;num_crtcs is zero. This is the
same thing that drm_vblank_pre_modeset() does.

Call trace of a drm_vblank_post_modeset() after drm_vblank_cleanup():
[   62.628906] [&lt;ffffffff804868d0&gt;] drm_vblank_post_modeset+0x34/0xb4
[   62.628906] [&lt;ffffffff804c7008&gt;] atombios_crtc_dpms+0xb4/0x174
[   62.628906] [&lt;ffffffff804c70e0&gt;] atombios_crtc_commit+0x18/0x38
[   62.628906] [&lt;ffffffff8047f038&gt;] drm_crtc_helper_set_mode+0x304/0x3cc
[   62.628906] [&lt;ffffffff8047f92c&gt;] drm_crtc_helper_set_config+0x6d8/0x988
[   62.628906] [&lt;ffffffff8047dd40&gt;] drm_fb_helper_set_par+0x94/0x104
[   62.628906] [&lt;ffffffff80439d14&gt;] fbcon_init+0x424/0x57c
[   62.628906] [&lt;ffffffff8046a638&gt;] visual_init+0xb8/0x118
[   62.628906] [&lt;ffffffff8046b9f8&gt;] take_over_console+0x238/0x384
[   62.628906] [&lt;ffffffff80436df8&gt;] fbcon_takeover+0x7c/0xdc
[   62.628906] [&lt;ffffffff8024fa20&gt;] notifier_call_chain+0x44/0x94
[   62.628906] [&lt;ffffffff8024fcbc&gt;] __blocking_notifier_call_chain+0x48/0x68
[   62.628906] [&lt;ffffffff8042d990&gt;] register_framebuffer+0x228/0x260
[   62.628906] [&lt;ffffffff8047e010&gt;] drm_fb_helper_single_fb_probe+0x260/0x314
[   62.628906] [&lt;ffffffff8047e2c4&gt;] drm_fb_helper_initial_config+0x200/0x234
[   62.628906] [&lt;ffffffff804e5560&gt;] radeon_fbdev_init+0xd4/0xf4
[   62.628906] [&lt;ffffffff804e0e08&gt;] radeon_modeset_init+0x9bc/0xa18
[   62.628906] [&lt;ffffffff804bfc14&gt;] radeon_driver_load_kms+0xdc/0x12c
[   62.628906] [&lt;ffffffff8048b548&gt;] drm_get_pci_dev+0x148/0x238
[   62.628906] [&lt;ffffffff80423564&gt;] local_pci_probe+0x5c/0xd0
[   62.628906] [&lt;ffffffff80241ac4&gt;] work_for_cpu_fn+0x1c/0x30
[   62.628906] [&lt;ffffffff802427c8&gt;] process_one_work+0x274/0x3bc
[   62.628906] [&lt;ffffffff80242934&gt;] process_scheduled_works+0x24/0x44
[   62.628906] [&lt;ffffffff8024515c&gt;] worker_thread+0x31c/0x3f4
[   62.628906] [&lt;ffffffff802497a8&gt;] kthread+0x88/0x90
[   62.628906] [&lt;ffffffff80206794&gt;] kernel_thread_helper+0x10/0x18

Signed-off-by: Huacai Chen &lt;chenhc@lemote.com&gt;
Signed-off-by: Binbin Zhou &lt;zhoubb@lemote.com&gt;
Reviewed-by: Michel Dänzer &lt;michel.daenzer@amd.com&gt;
Acked-by: Paul Menzel &lt;paulepanter@users.sourceforge.net&gt;
Signed-off-by: Dave Airlie &lt;airlied@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/radeon: fix card_posted check for newer asics</title>
<updated>2013-06-07T19:46:43Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2013-05-22T15:22:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2b23550e4d01f4c0c1560c899db43e1a63f7ccd0'/>
<id>urn:sha1:2b23550e4d01f4c0c1560c899db43e1a63f7ccd0</id>
<content type='text'>
commit 09fb8bd1a63b0f9f15e655c4fe8d047e5d2bf67a upstream.

Newer asics have variable numbers of crtcs.  Use that
rather than the asic family to determine which crtcs
to check.  This avoids checking non-existent crtcs or
missing crtcs on certain asics.

Reviewed-by: Michel Dänzer &lt;michel.daenzer@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/radeon: check incoming cliprects pointer</title>
<updated>2013-05-19T17:04:50Z</updated>
<author>
<name>Kees Cook</name>
<email>keescook@chromium.org</email>
</author>
<published>2013-05-13T05:00:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ac087d8e21d7722266d913d766b5c8b87772cbb4'/>
<id>urn:sha1:ac087d8e21d7722266d913d766b5c8b87772cbb4</id>
<content type='text'>
commit fefaedcfb82d2e57c2320acf60604ab03b750cc0 upstream.

The "boxes" parameter points into userspace memory. It should be verified
like any other operation against user memory.

Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/mm: fix dump table BUG</title>
<updated>2013-05-19T17:04:42Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2013-04-20T10:08:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=875cfc6271a37f35f6334c26184b16eb70625929'/>
<id>urn:sha1:875cfc6271a37f35f6334c26184b16eb70625929</id>
<content type='text'>
commit 3a359f0b21ab218c1bf7a6a1b638b6fd143d0b99 upstream.

In

commit 9e8944ab564f2e3dde90a518cd32048c58918608
Author: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Date:   Thu Nov 15 11:32:17 2012 +0000

    drm: Introduce an iterator over holes in the drm_mm range manager

helpers and iterators for hole handling have been introduced with some
debug BUG_ONs sprinkled over. Unfortunately this broke the mm dumper
which unconditionally tried to compute the size of the very first
hole.

While at it unify the code a bit with the hole dumping in the loop.

v2: Extract a hole dump helper.

Reported-by: Christopher Harvey &lt;charvey@matrox.com&gt;
Cc: Christopher Harvey &lt;charvey@matrox.com&gt;
Cc: Dave Airlie &lt;airlied@redhat.com&gt;
Cc: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Acked-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>drm/radeon: fix possible segfault when parsing pm tables</title>
<updated>2013-05-11T20:38:03Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2013-04-25T13:29:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=82bab2b3b6d6029b06a4e85156ccf99bf95cc2f2'/>
<id>urn:sha1:82bab2b3b6d6029b06a4e85156ccf99bf95cc2f2</id>
<content type='text'>
commit f8e6bfc2ce162855fa4f9822a45659f4b542c960 upstream.

If we have a empty power table, bail early and allocate
the default power state.

Should fix:
https://bugs.freedesktop.org/show_bug.cgi?id=63865

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>
