<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpu, branch v3.4.7</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/gpu?h=v3.4.7</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/gpu?h=v3.4.7'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-07-16T16:04:43Z</updated>
<entry>
<title>drm/i915: rip out the PM_IIR WARN</title>
<updated>2012-07-16T16:04:43Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2012-06-21T12:55:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c9bb51fb8c7a9d8b230c0bd184d9af919350383b'/>
<id>urn:sha1:c9bb51fb8c7a9d8b230c0bd184d9af919350383b</id>
<content type='text'>
commit 58bf8062d0b293b8e1028e5b0342082002886bd4 upstream.

After banging my head against this for the past few months, I still
don't see how this could possible race under the premise that once an
irq bit is masked in PM_IMR and reset in PM_IIR it won't show up again
until we unmask it in PM_IMR.

Still, we have reports of this being seen in the wild. Now Bspec has
this little bit of lovely language in the PMIIR register:

Public SNB Docs, Vol3Part2, 2.5.14 "PMIIR":

"For each bit, the IIR can store a second pending interrupt if two or
more of the same interrupt conditions occur before the first condition
is cleared. Upon clearing the interrupt, the IIR bit will momentarily
go low, then return high to indicate there is another interrupt
pending."

Now if we presume that PMIMR only prevent new interrupts from being
queued, we could easily end up masking an interrupt and clearing it,
but the 2nd pending interrupt setting the bit in PMIIR right away
again. Which leads, the next time the irq handler runs, to hitting the
WARN.

Also, no bad side effects of this have ever been reported. And we've
tracked down our issues with the gpu turbo getting stuck to bogus
interrupt generation limits in th RPLIMIT register.

So let's just rip out this WARN as bogus and call it a day. The only
shallow thing here is that this 2-deep irq queue in the hw makes you
wonder how racy the windows irq handler is ...

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42907
Acked-by: Chris Wilson &lt;chris@chris-wilson.co.uk&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: Refactor the deferred PM_IIR handling into a single function</title>
<updated>2012-07-16T16:04:43Z</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2012-04-15T10:56:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a08fae601d01ab177dbef90778f87f7c5467b792'/>
<id>urn:sha1:a08fae601d01ab177dbef90778f87f7c5467b792</id>
<content type='text'>
commit fc6826d1dcd65f3d1e9a5377678882e4e08f02be upstream.

This function, along with the registers and deferred work hander, are
all shared with SandyBridge, IvyBridge and their variants. So remove the
duplicate code into a single function.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Reviewed-by: Ben Widawsky &lt;ben@bwidawsk.net&gt;
Signed-Off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
[bwh: Backported to 3.2: adjust context; drop changes for Valley View]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drm/radeon: fix VM page table setup on SI</title>
<updated>2012-07-16T16:04:06Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2012-06-28T21:53:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a00d69ed0676b53e7e5c8d086d47a92f15b91e38'/>
<id>urn:sha1:a00d69ed0676b53e7e5c8d086d47a92f15b91e38</id>
<content type='text'>
commit c21b328ea8c7c71cd2daf50557db440bbaa7ef55 upstream.

Cayman and trinity allow for variable sized VM page
tables, but SI requires that all page tables be the
same size.  The current code assumes variablely sized
VM page tables so SI may end up with part of each page
table overlapping with other memory which could end
up being interpreted by the VM hw as garbage.

Change the code to better accomodate SI.  Allocate enough
space for at least 2 full page tables and always set
last_pfn to max_pfn on SI so each VM is backed by a full
page table.  This limits us to only 2 VMs active at any
given time on SI.  This will be rectified and the code can
be reunified once we move to two level page tables.

Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Reviewed-by: Jerome Glisse &lt;jglisse@redhat.com&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/i915: Fix eDP blank screen after S3 resume on HP desktops</title>
<updated>2012-07-16T16:04:05Z</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2012-06-21T13:30:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6ad566e162cbf778300fd6bfe37c98b5ce46d58b'/>
<id>urn:sha1:6ad566e162cbf778300fd6bfe37c98b5ce46d58b</id>
<content type='text'>
commit 6db65cbb941f9d433659bdad02b307f6d94465df upstream.

This patch fixes the problem on some HP desktop machines with eDP
which give blank screens after S3 resume.

It turned out that BLC_PWM_CPU_CTL must be written after
BLC_PWM_CPU_CTL2.  Otherwise it doesn't take effect on these
SNB machines.

Tested with 3.5-rc3 kernel.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49233

Signed-off-by: Takashi Iwai &lt;tiwai@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/nouveau/fbcon: using nv_two_heads is not a good idea</title>
<updated>2012-07-16T16:04:05Z</updated>
<author>
<name>Ben Skeggs</name>
<email>bskeggs@redhat.com</email>
</author>
<published>2012-06-26T02:12:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=eb858e23a8aa132d068aa639f617ba38e008d077'/>
<id>urn:sha1:eb858e23a8aa132d068aa639f617ba38e008d077</id>
<content type='text'>
commit 9bd0c15fcfb42f6245447c53347d65ad9e72080b upstream.

nv_two_heads() was never meant to be used outside of pre-nv50 code.  The
code checks for &gt;= NV_10 for 2 CRTCs, then downgrades a few specific
chipsets to 1 CRTC based on (pci_device &amp; 0x0ff0).

The breakage example seen is on GTX 560Ti, with a pciid of 0x1200, which
gets detected as an NV20 (0x020x) with 1 CRTC by nv_two_heads(), causing
memory corruption because there's actually 2 CRTCs..

This switches fbcon to use the CRTC count directly from the mode_config
structure, which will also fix the same issue on Kepler boards which have
4 CRTCs.

Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&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/edid: don't return stack garbage from supports_rb</title>
<updated>2012-07-16T16:04:05Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2012-06-19T09:33:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dec7e3ab49dcdb1b7997008230eb18d520899119'/>
<id>urn:sha1:dec7e3ab49dcdb1b7997008230eb18d520899119</id>
<content type='text'>
commit b196a4980ff7bb54db478e2a408dc8b12be15304 upstream.

We need to initialize this to false, because the is_rb callback only
ever sets it to true.

Noticed while reading through the code.

Signed-Off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Reviewed-by: Adam Jackson &lt;ajax@redhat.com&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 sis: initialize object_idr</title>
<updated>2012-06-22T18:36:53Z</updated>
<author>
<name>Márton Németh</name>
<email>nm127@freemail.hu</email>
</author>
<published>2012-06-11T17:09:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ebbd13c9d27ab013fdf7005829a80d504b0cb32e'/>
<id>urn:sha1:ebbd13c9d27ab013fdf7005829a80d504b0cb32e</id>
<content type='text'>
commit 648ccc7d35e3416fdc739d2e520e85de3125361b upstream.

The filed object_idr of struct drm_sis_private was introduced with
commit http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=6de8a748881f1cd9d795454da2b6db616d5ca3d7 .

The idr_init(&amp;dev-&gt;object_name_idr) is called instead of
idr_init(&amp;dev_priv-&gt;object_idr) by mistake, leaving object_idr
uninitialized. Correct this.

This patch was not tested because of lack of hardware.

Signed-off-by: Márton Németh &lt;nm127@freemail.hu&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&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/udl: only bind to the video devices on the hub.</title>
<updated>2012-06-22T18:36:53Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2012-06-16T06:41:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8d96bccced28ba3c12ffb923aa264aa6b0d604a1'/>
<id>urn:sha1:8d96bccced28ba3c12ffb923aa264aa6b0d604a1</id>
<content type='text'>
commit e5a867a51d9b009f90d5dca6a320608e4e8a37ec upstream.

This is ported from udlfb.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=832188
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 via: initialize object_idr</title>
<updated>2012-06-22T18:36:53Z</updated>
<author>
<name>Márton Németh</name>
<email>nm127@freemail.hu</email>
</author>
<published>2012-06-10T21:39:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=eda8cc4ce07d538bb4170330e53ae52c5f637be8'/>
<id>urn:sha1:eda8cc4ce07d538bb4170330e53ae52c5f637be8</id>
<content type='text'>
commit ce020ea53264f1460ae619cfc12f968dbd0b8974 upstream.

The field obejct_idr of struct drm_via_private was introduced with the
commit http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=77ee8f3825054f23b17e9c8f728f061defd86cdc .
In that patch idr_init(&amp;dev-&gt;object_name_idr) was called instead of
idr_init(&amp;dev_priv-&gt;object_idr) by mistake, leaving the dev_priv-&gt;object_idr
uninitialized. To be more exact, the object_idr buffer is filled with zeros
because of kzalloc(), but the dev_priv-&gt;object_idr.lock spinlock can cause
system freeze at lib/idr.c:move_to_free_list() when spin_lock_irqsave()
is called on this spinlock.

The patch was tested on Clevo D4J, model D410J laptop, on the following
hardware, without AGP kernel module loaded:

  # lspci -s 01:00.0 -n
  01:00.0 0300: 1106:3108 (rev 01)
  # lspci -s 01:00.0 -v
  01:00.0 VGA compatible controller: VIA Technologies, Inc. K8M800/K8N800/K8N800A [S3 UniChrome Pro] (rev 01) (prog-if 00 [VGA controller])
          Subsystem: CLEVO/KAPOK Computer Device 4702
          Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 16
          Memory at f0000000 (32-bit, prefetchable) [size=64M]
          Memory at d1000000 (32-bit, non-prefetchable) [size=16M]
          Expansion ROM at &lt;unassigned&gt; [disabled]
          Capabilities: [60] Power Management version 2
          Capabilities: [70] AGP version 3.0

Signed-off-by: Márton Németh &lt;nm127@freemail.hu&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&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/radeon: add some additional 6xx/7xx/EG register init</title>
<updated>2012-06-22T18:36:53Z</updated>
<author>
<name>Alex Deucher</name>
<email>alexander.deucher@amd.com</email>
</author>
<published>2012-06-14T20:06:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=789ed2afd385af95798c6ec419ad41f8801975a4'/>
<id>urn:sha1:789ed2afd385af95798c6ec419ad41f8801975a4</id>
<content type='text'>
commit b866d1334ba2d544bc575d75357dea6bdcdc7f46 upstream.

- SMX_SAR_CTL0 needs to be programmed correctly to prevent
problems with memory exports in certain cases.
- VC_ENHANCE needs to be initialized on 6xx/7xx.

Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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