<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/gpu/drm/drm_gem.c, branch v3.2.67</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.2.67</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.2.67'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2011-08-30T10:06:06Z</updated>
<entry>
<title>drm/gem: add functions for mmap offset creation</title>
<updated>2011-08-30T10:06:06Z</updated>
<author>
<name>Rob Clark</name>
<email>rob@ti.com</email>
</author>
<published>2011-08-10T13:09:07Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=75ef8b3b9c0b76eb5a16cd838cb99a7deecceb85'/>
<id>urn:sha1:75ef8b3b9c0b76eb5a16cd838cb99a7deecceb85</id>
<content type='text'>
Signed-off-by: Rob Clark &lt;rob@ti.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm/gem: add support for private objects</title>
<updated>2011-07-25T11:07:15Z</updated>
<author>
<name>Alan Cox</name>
<email>alan@linux.intel.com</email>
</author>
<published>2011-06-07T13:17:51Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=62cb70118c4efabb3c0a6f962168ddcad4344eef'/>
<id>urn:sha1:62cb70118c4efabb3c0a6f962168ddcad4344eef</id>
<content type='text'>
These small changes should allow GEM to be used with non shmem objects as
well as shmem objects. In the GMA500 case it allows the base framebuffer to
appear as a GEM object and thus acquire a handle and work with KMS.

For i915 it ought to be trivial to get back the wasted memory but putting the
system fb back into stolen RAM and in general I can imagine it allowing the
use of GEM and thus KMS with all the older cards that have their framebuffer
firmly placed in video RAM.

Signed-off-by: Alan Cox &lt;alan@linux.intel.com&gt;
Tested-by: Rob Clark &lt;rob@ti.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge 3.0-rc7 into drm-core-next</title>
<updated>2011-07-13T07:30:22Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2011-07-13T07:30:11Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=cf056edbbe70393faa6edd2b7859a14467910946'/>
<id>urn:sha1:cf056edbbe70393faa6edd2b7859a14467910946</id>
<content type='text'>
This pulls in all the drm fixes up to this point which are needed
for some -next patches to work.
</content>
</entry>
<entry>
<title>drm/i915: use shmem_read_mapping_page</title>
<updated>2011-06-28T01:00:13Z</updated>
<author>
<name>Hugh Dickins</name>
<email>hughd@google.com</email>
</author>
<published>2011-06-27T23:18:18Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5949eac4d9b5bf936c12cb7ec3a09084c1326834'/>
<id>urn:sha1:5949eac4d9b5bf936c12cb7ec3a09084c1326834</id>
<content type='text'>
Soon tmpfs will stop supporting -&gt;readpage and read_cache_page_gfp(): once
"tmpfs: add shmem_read_mapping_page_gfp" has been applied, this patch can
be applied to ease the transition.

Make i915_gem_object_get_pages_gtt() use shmem_read_mapping_page_gfp() in
the one place it's needed; elsewhere use shmem_read_mapping_page(), with
the mapping's gfp_mask properly initialized.

Forget about __GFP_COLD: since tmpfs initializes its pages with memset,
asking for a cold page is counter-productive.

Include linux/shmem_fs.h also in drm_gem.c: with shmem_file_setup() now
declared there too, we shall remove the prototype from linux/mm.h later.

Signed-off-by: Hugh Dickins &lt;hughd@google.com&gt;
Cc: Christoph Hellwig &lt;hch@infradead.org&gt;
Cc: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Keith Packard &lt;keithp@keithp.com&gt;
Cc: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>drm/gem: add hooks to notify driver when object handle is created/destroyed</title>
<updated>2011-06-21T02:32:33Z</updated>
<author>
<name>Ben Skeggs</name>
<email>bskeggs@redhat.com</email>
</author>
<published>2011-06-09T00:24:59Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=304eda32920b5e23f6b9bc12eb40c7dc52a464ba'/>
<id>urn:sha1:304eda32920b5e23f6b9bc12eb40c7dc52a464ba</id>
<content type='text'>
Nouveau is going to use these hooks to map/unmap objects from a client's
private GPU address space.

Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm: Fix use-after-free in drm_gem_vm_close()</title>
<updated>2011-03-20T23:15:22Z</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2011-03-17T22:33:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b74ad5ae14def5e81ad0be3dddb96e485b861b1b'/>
<id>urn:sha1:b74ad5ae14def5e81ad0be3dddb96e485b861b1b</id>
<content type='text'>
As we may release the last reference, we need to store the device in a
local variable in order to unlock afterwards.

[   60.140768] BUG: unable to handle kernel paging request at 6b6b6b9f
[   60.140973] IP: [&lt;c1536d11&gt;] __mutex_unlock_slowpath+0x5a/0x111
[   60.141014] *pdpt = 0000000024a54001 *pde = 0000000000000000
[   60.141014] Oops: 0002 [#1] PREEMPT SMP
[   60.141014] last sysfs file: /sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/PNP0C0A:00/power_supply/BAT0/voltage_now
[   60.141014] Modules linked in: uvcvideo ath9k pegasus ath9k_common ath9k_hw hid_egalax ath3k joydev asus_laptop sparse_keymap battery input_polldev
[   60.141014]
[   60.141014] Pid: 771, comm: meego-ux-daemon Not tainted 2.6.37.2-7.1 #1 EXOPC EXOPG06411/EXOPG06411
[   60.141014] EIP: 0060:[&lt;c1536d11&gt;] EFLAGS: 00010046 CPU: 0
[   60.141014] EIP is at __mutex_unlock_slowpath+0x5a/0x111
[   60.141014] EAX: 00000100 EBX: 6b6b6b9b ECX: e9b4a1b0 EDX: e4a4e580
[   60.141014] ESI: db162558 EDI: 00000246 EBP: e480be50 ESP: e480be44
[   60.141014]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[   60.141014] Process meego-ux-daemon (pid: 771, ti=e480a000 task=e9b4a1b0 task.ti=e480a000)
[   60.141014] Stack:
[   60.141014]  e4a4e580 db162558 f5a2f838 e480be58 c1536dd0 e480be68 c125ab1b db162558
[   60.141014]  db1624e0 e480be78 c10ba071 db162558 f760241c e480be94 c10bb0bc 000155fe
[   60.141014]  f760241c f5a2f838 f5a2f8c8 00000000 e480bea4 c1037c24 00000000 f5a2f838
[   60.141014] Call Trace:
[   60.141014]  [&lt;c1536dd0&gt;] ? mutex_unlock+0x8/0xa
[   60.141014]  [&lt;c125ab1b&gt;] ? drm_gem_vm_close+0x39/0x3d
[   60.141014]  [&lt;c10ba071&gt;] ? remove_vma+0x2d/0x58
[   60.141014]  [&lt;c10bb0bc&gt;] ? exit_mmap+0x126/0x13f
[   60.141014]  [&lt;c1037c24&gt;] ? mmput+0x37/0x9a
[   60.141014]  [&lt;c10d450d&gt;] ? exec_mmap+0x178/0x19c
[   60.141014]  [&lt;c1537f85&gt;] ? _raw_spin_unlock+0x1d/0x36
[   60.141014]  [&lt;c10d4eb0&gt;] ? flush_old_exec+0x42/0x75
[   60.141014]  [&lt;c1104442&gt;] ? load_elf_binary+0x32a/0x922
[   60.141014]  [&lt;c10d3f76&gt;] ? search_binary_handler+0x200/0x2ea
[   60.141014]  [&lt;c10d3ecf&gt;] ? search_binary_handler+0x159/0x2ea
[   60.141014]  [&lt;c1104118&gt;] ? load_elf_binary+0x0/0x922
[   60.141014]  [&lt;c10d56b2&gt;] ? do_execve+0x1ff/0x2e6
[   60.141014]  [&lt;c100970e&gt;] ? sys_execve+0x2d/0x55
[   60.141014]  [&lt;c1002a5a&gt;] ? ptregs_execve+0x12/0x18
[   60.141014]  [&lt;c10029dc&gt;] ? sysenter_do_call+0x12/0x3c
[   60.141014]  [&lt;c1530000&gt;] ? init_centaur+0x9c/0x1ba
[   60.141014] Code: c1 00 75 0f ba 38 01 00 00 b8 8c 3a 6c c1 e8 cc 2e b0 ff 9c 58 8d 74 26 00 89 c7 fa 90 8d 74 26 00 e8 d2 b4 b2 ff b8 00 01 00 00 &lt;f0&gt; 66 0f c1 43 04 38 e0 74 07 f3 90 8a 43 04 eb f5 83 3d 64 ef
[   60.141014] EIP: [&lt;c1536d11&gt;] __mutex_unlock_slowpath+0x5a/0x111 SS:ESP 0068:e480be44
[   60.141014] CR2: 000000006b6b6b9f

Reported-by: Rusty Lynch &lt;rusty.lynch@intel.com&gt;
Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: stable@kernel.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm: Trim the GEM mmap offset hashtab</title>
<updated>2011-02-23T01:15:39Z</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2011-01-12T21:11:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4cb81ac2028a18f3f872f56fb7527afe5f5d0278'/>
<id>urn:sha1:4cb81ac2028a18f3f872f56fb7527afe5f5d0278</id>
<content type='text'>
Using an order 19 drm_ht for the mmap offsets is a little obscene. That
means that will a fully populated GTT with every single object mmaped at
least once in its lifetime, there will be exactly one object in each
bucket.

Typically systems only have at most a few thousand objects, though you
may see a KDE desktop hit 50000. And most of those should never be
mapped... On my systems, just using an order 10 ht would still have an
average occupancy less than 1, so apply a small safety factor and
use an order 12 ht, like the other mmap offset ht.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>drm: dumb scanout create/mmap for intel/radeon (v3)</title>
<updated>2011-02-07T02:16:14Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2011-02-07T02:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ff72145badb834e8051719ea66e024784d000cb4'/>
<id>urn:sha1:ff72145badb834e8051719ea66e024784d000cb4</id>
<content type='text'>
This is just an idea that might or might not be a good idea,
it basically adds two ioctls to create a dumb and map a dumb buffer
suitable for scanout. The handle can be passed to the KMS ioctls to create
a framebuffer.

It looks to me like it would be useful in the following cases:
a) in development drivers - we can always provide a shadowfb fallback.
b) libkms users - we can clean up libkms a lot and avoid linking
to libdrm_*.
c) plymouth via libkms is a lot easier.

Userspace bits would be just calls + mmaps. We could probably
mark these handles somehow as not being suitable for acceleartion
so as top stop people who are dumber than dumb.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
<entry>
<title>Merge remote branch 'korg/drm-fixes' into drm-vmware-next</title>
<updated>2010-10-06T01:10:48Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2010-10-06T01:10:48Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=fb7ba2114bcd8bb51640c20bc68f89164b29b9ed'/>
<id>urn:sha1:fb7ba2114bcd8bb51640c20bc68f89164b29b9ed</id>
<content type='text'>
necessary for some of the vmware fixes to be pushed in.

Conflicts:
	drivers/gpu/drm/drm_gem.c
	drivers/gpu/drm/i915/intel_fb.c
	include/drm/drmP.h
</content>
</entry>
<entry>
<title>drm: Move the GTT accounting to i915</title>
<updated>2010-10-01T13:45:20Z</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2010-09-30T10:46:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=73aa808f10effc280e6eb70267314542a7c29426'/>
<id>urn:sha1:73aa808f10effc280e6eb70267314542a7c29426</id>
<content type='text'>
Only drm/i915 does the bookkeeping that makes the information useful,
and the information maintained is driver specific, so move it out of the
core and into its single user.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
</entry>
</feed>
