<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/gpu/drm/via, branch v3.6</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/gpu/drm/via?h=v3.6</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/gpu/drm/via?h=v3.6'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-09-05T20:55:02Z</updated>
<entry>
<title>drm: use drm_compat_ioctl for 32-bit apps</title>
<updated>2012-09-05T20:55:02Z</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-07-09T22:40:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=804d74abe2e3f361ead5c5c6850d5b1ab0203862'/>
<id>urn:sha1:804d74abe2e3f361ead5c5c6850d5b1ab0203862</id>
<content type='text'>
Most of the DRM drivers appear to be missing the .compat_ioctl file
operation entry necessary for 32-bit application compatibility.

This patch  uses drm_compat_ioctl for all drivers which don't have
their own, and which are using drm_ioctl for .unlocked_ioctl.

This leaves drivers/gpu/drm/psb/psb_drv.c unchanged; it has a custom
.unlocked_ioctl and will presumably need a custom .compat_ioctl as
well.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@gmail.com&gt;
</content>
</entry>
<entry>
<title>drm/via: clean up reclaim_buffers</title>
<updated>2012-07-20T02:48:28Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2011-10-25T21:37:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=834859c3abf9272bf55bd0d0c95e5a892f24dadc'/>
<id>urn:sha1:834859c3abf9272bf55bd0d0c95e5a892f24dadc</id>
<content type='text'>
A few things
- kill reclaim_buffers, it's never ever called because via does not set
  DRIVER_HAVE_DMA
- inline the idlelock dance into the buffer reclaim logic and make it
  a simple preclose cleanup function
- directly call the the dma_quiescent function and kill the needless
  if check.

v2: Actually drop the idlelock when we take it. Reported by James
Simmons.

v3: Rebased onto latest drm-next.

v4: Fixup the refactor.

v5: More fixup the refactor - I've accidentally changed the check for
any master to checking whether the closing fd is the master.

v6: Don't forget to drop the idlelock in the early return path, too.

Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm via: initialize object_idr</title>
<updated>2012-06-16T10:18:38Z</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=ce020ea53264f1460ae619cfc12f968dbd0b8974'/>
<id>urn:sha1:ce020ea53264f1460ae619cfc12f968dbd0b8974</id>
<content type='text'>
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;
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm: move pci bus master enable into driver.</title>
<updated>2012-02-16T18:31:07Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2011-12-19T11:15:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=466e69b8b03b8c1987367912782bc12988ad8794'/>
<id>urn:sha1:466e69b8b03b8c1987367912782bc12988ad8794</id>
<content type='text'>
The current enabling of bus mastering in the drm midlayer allows a large
race condition under kexec. When a kexec'ed kernel re-enables bus mastering
for the GPU, previously setup dma blocks may cause writes to random pieces
of memory. On radeon the writeback mechanism can cause these sorts of issues.

This patch doesn't fix the problem, but it moves the bus master enable under
the individual drivers control so they can move enabling it until later in
their load cycle and close the race.

Fix for radeon kms driver will be in a follow-up patch.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/sis|via: don't return stack garbage from free_mem ioctl</title>
<updated>2012-01-09T12:11:39Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2012-01-08T21:42:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b5215ef1a877cd81a2558f3ddbcf784671a27588'/>
<id>urn:sha1:b5215ef1a877cd81a2558f3ddbcf784671a27588</id>
<content type='text'>
Fallout from my "kill drm_sman" refactor. Unfortunately gcc seems to
have failed me and not warned about this.

Tested-by: Jakob Bornecrantz &lt;wallbraker@gmail.com&gt; (on via)
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/via: use drm_mm instead of drm_sman</title>
<updated>2011-12-21T23:33:22Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2011-10-26T20:21:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=977b4f6edd7a960dd80c1a614a7644068f866c5b'/>
<id>urn:sha1:977b4f6edd7a960dd80c1a614a7644068f866c5b</id>
<content type='text'>
To make the transition in a piece-wise and bisectable way possible,
I've hijacked the -&gt;owner_list from drm_sman. While transitioning, the
list_add was done by the driver, while the list_del was still done by
the dying sman code.

Now that we are in full control of -&gt;owner_list, do the list_del
ourselves.

v2: Better explain the list_del trickery as suggested by Chris Wilson.

Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/sis: track user-&gt;memblock mapping with idr</title>
<updated>2011-12-21T23:33:21Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2011-10-25T16:00:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6de8a748881f1cd9d795454da2b6db616d5ca3d7'/>
<id>urn:sha1:6de8a748881f1cd9d795454da2b6db616d5ca3d7</id>
<content type='text'>
Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/via: track user-&gt;memblock mapping with idr</title>
<updated>2011-12-21T23:33:20Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2011-10-25T15:55:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=77ee8f3825054f23b17e9c8f728f061defd86cdc'/>
<id>urn:sha1:77ee8f3825054f23b17e9c8f728f061defd86cdc</id>
<content type='text'>
Massive indirection through a hashtable for a simple key-&gt;pointer
look-up actually just adds bloat.

v2: Drop the misleading comment noted by Chris Wilson.

Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/sman: rip out owner tracking</title>
<updated>2011-12-21T23:33:20Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2011-10-26T20:28:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=763240deb423c477b4d46c23e0b582099d4b8753'/>
<id>urn:sha1:763240deb423c477b4d46c23e0b582099d4b8753</id>
<content type='text'>
In contrast to kms drivers, sis/via _always_ associated a buffer with
a drm fd. So by the time we reach lastclose, all open drm fds are gone
and with them their associated objects.

So when sis/via call drm_sman_cleanup in their lastclose funcs, that
will free 0 objects.

The owner tracking now serves no purpose at all, hence rip it ou. We
can't kill the corresponding fields in struct drm_memblock_item yet
because we hijack these in the new driver private owner tracking. But
now that drm_sman.c doesn't touch -&gt;owner_list anymore, we need to
kill the list_move hack and properly add the item to the file_priv
list.

Also leave the list_del(&amp;obj-&gt;owner_list) in drm_sman_free for the
moment, it will move to the drivers when sman disappears completely.

v2: Remove the redundant INIT_LIST_HEAD as noted by Chris Wilson

Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
<entry>
<title>drm/via: track obj-&gt;drm_fd relations in the driver</title>
<updated>2011-12-21T23:33:19Z</updated>
<author>
<name>Daniel Vetter</name>
<email>daniel.vetter@ffwll.ch</email>
</author>
<published>2011-10-25T14:32:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c828e20456301b0f5192a1f75e8bf8a6afd15551'/>
<id>urn:sha1:c828e20456301b0f5192a1f75e8bf8a6afd15551</id>
<content type='text'>
Exactly like the previous patch for sis.

Signed-off-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
</entry>
</feed>
