Re: Move lists to freedesktop.org?

2010-04-09 Thread Stephane Marchesin
On Thu, Apr 8, 2010 at 16:37, Jesse Barnes jbar...@virtuousgeek.org wrote:
 On Thu, 8 Apr 2010 18:38:03 -0400
 Alex Deucher alexdeuc...@gmail.com wrote:

 On Thu, Apr 8, 2010 at 6:21 PM, Brian Paul bri...@vmware.com wrote:
 
  Unless there's some objection I'm going to subscribe everyone to the
  new FD.O-based mesa-dev mailing list who's on the mesa3d-dev list.
  Probably in the next 24 hours.
 
  Then, some of you may have to log into the mailman interface
  (http://lists.freedesktop.org/mailman/listinfo/mesa-dev) to set digest
  mode, etc.
 
  -Brian

 Are there plans to move dri-devel as well?

 Yeah, I'm just getting the info for that now.  But I don't think we
 have subscriber lists, so everyone will have to re-subscribe to the new
 list.

 I'll send out a note to dri-devel when it's all set.


You can get the subscriber list at:
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Stephane

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm_handle_t type

2010-04-09 Thread Matthew W. S. Bell
On Mon, 2010-04-05 at 17:46 +1000, Dave Airlie wrote:
 Its probably not documented well anywhere, though I think the handles are
 32-bit is written down somewhere.

Well, here's a patch that silences the warnings and adds a little note.

Matthew

---
From 9111cd82560052a329b78cff8d7e45c6815e0276 Mon Sep 17 00:00:00 2001
From: Matthew W. S. Bell matt...@bells23.org.uk
Date: Fri, 9 Apr 2010 02:58:42 +0100

Add a comment about content of void* variable exchanged with kernel.
Add casts to silence warnings about pointer to integer of a different
size assignment.
---
 include/drm/drm.h |2 ++
 xf86drm.c |4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/include/drm/drm.h b/include/drm/drm.h
index 4822159..e74d6d6 100644
--- a/include/drm/drm.h
+++ b/include/drm/drm.h
@@ -216,6 +216,8 @@ struct drm_map {
enum drm_map_flags flags;/** Flags */
void *handle;/** User-space: Handle to pass to mmap() */
 /** Kernel-space: kernel-virtual address */
+/**  The value herein shall be the size of */
+/**  drm_handle_t despite the size of void *. 
*/
int mtrr;/** MTRR slot used */
/*   Private data */
 };
diff --git a/xf86drm.c b/xf86drm.c
index 220aaa1..012408a 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -959,7 +959,7 @@ int drmAddMap(int fd, drm_handle_t offset, drmSize size, 
drmMapType type,
 if (drmIoctl(fd, DRM_IOCTL_ADD_MAP, map))
return -errno;
 if (handle)
-   *handle = (drm_handle_t)map.handle;
+   *handle = (uintptr_t)map.handle;
 return 0;
 }
 
@@ -2138,7 +2138,7 @@ int drmGetMap(int fd, int idx, drm_handle_t *offset, 
drmSize *size,
 *size   = map.size;
 *type   = map.type;
 *flags  = map.flags;
-*handle = (unsigned long)map.handle;
+*handle = (uintptr_t)map.handle;
 *mtrr   = map.mtrr;
 return 0;
 }
-- 
1.7.0





signature.asc
Description: This is a digitally signed message part
--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: 2.6.34-rc3-git8: Reported regressions 2.6.32 - 2.6.33

2010-04-09 Thread Gertjan van Wingerde
On 04/09/10 00:54, Rafael J. Wysocki wrote:
 
 Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=15699
 Subject   : rt2500usb driver cannot remain connected
 Submitter :  a...@gentoo.org
 Date  : 2010-04-05 19:30 (4 days old)
 Handled-By: Ivo van Doorn ivdo...@gmail.com
 

This one ought to be fixed by commit 9e76ad2a27f592c1390248867391880c7efe78b3
in Linus' tree.

---
Gertjan.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27524] linux-2.6.33.2 radeondrm_fb, rv350, garbled console on PowerBook G4

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27524

Michel Dänzer mic...@daenzer.net changed:

   What|Removed |Added

Product|Mesa|DRI
  Component|Drivers/DRI/r300|DRM/Radeon

--- Comment #11 from Michel Dänzer mic...@daenzer.net 2010-04-09 02:21:36 PDT 
---
Right, so let's focus on the OFfb handover issue. One thing that might help
track down what's going on would be comparing register dumps from the good and
bad cases.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27524] linux-2.6.33.2 radeondrm_fb, rv350, garbled console on PowerBook G4

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27524

--- Comment #12 from Jeremy Huddleston jerem...@freedesktop.org 2010-04-09 
02:48:57 PDT ---
Ok, tell me what you want me to dump, when you want me to dump it, and how.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 15736] New: Radeon crashes booting after enabling KMS

2010-04-09 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=15736

   Summary: Radeon crashes booting after enabling KMS
   Product: Drivers
   Version: 2.5
Kernel Version: 2.6.33.2
  Platform: All
OS/Version: Linux
  Tree: Mainline
Status: NEW
  Severity: normal
  Priority: P1
 Component: Video(DRI - non Intel)
AssignedTo: drivers_video-...@kernel-bugs.osdl.org
ReportedBy: mh+kernel-bugzi...@zugschlus.de
Regression: No


Created an attachment (id=25927)
 -- (https://bugzilla.kernel.org/attachment.cgi?id=25927)
full kernel message log up and including the oops

Hi,

my notebook has a
01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon
9600 M10].
When I try booting with video=radeon:modeset=1, the system oopses and freezes
with
[   12.501727] Linux agpgart interface v0.103
[   12.574951] [drm] Initialized drm 1.1.0 20060810
[   12.670625] [drm] radeon kernel modesetting enabled.
[   12.730384] ACPI: PCI Interrupt Link [C0C1] enabled at IRQ 10
[   12.799058] radeon :01:00.0: PCI INT A - Link[C0C1] - GSI 10 (level,
low) - IR
[   12.900102] [drm] radeon: Initializing kernel modesetting.
[   12.968061] [drm] register mmio base: 0x9040
[   13.023221] [drm] register mmio size: 65536
[   13.073585] [drm] GPU reset succeed (RBBM_STATUS=0x0140)
[   13.141231] [drm] Generation 2 PCI interface, using max accessible memory
[   13.222395] BUG: unable to handle kernel NULL pointer dereference at
0040
[   13.226373] IP: [f81c082b] radeon_agp_init+0x19/0x2cf [radeon]
[   13.226373] *pde =  
[   13.226373] Oops:  [#1] PREEMPT SMP 
(full kernel message log obtained via serial console is attached).

Greetings
Marc

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 15030] screen connected to displayport is not detected - kms radeon

2010-04-09 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=15030


Nicolas Reinecke pl4nk...@googlemail.com changed:

   What|Removed |Added

 Kernel Version|2.6.33-rc6  |2.6.34-rc3




--- Comment #15 from Nicolas Reinecke pl4nk...@googlemail.com  2010-04-09 
10:57:29 ---
DP still not working with KMS.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27521] corrupted rendering with vbo + kms + rv515 (hits Blender 2.50!)

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27521

--- Comment #3 from Wiktor Janas wixorp...@gmail.com 2010-04-09 05:07:59 PDT 
---
Indeed, gallium version works for me too. However, it has some serious texture
problems - basically anything Blender draws using textures is garbage. Blender
can be used without vbo, but not without textures.

Is the vbo bug going to be fixed in non-gallium version?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 15030] screen connected to displayport is not detected - kms radeon

2010-04-09 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=15030





--- Comment #16 from Nicolas Reinecke pl4nk...@googlemail.com  2010-04-09 
12:11:26 ---
Created an attachment (id=25928)
 -- (https://bugzilla.kernel.org/attachment.cgi?id=25928)
DP screen not detected, drm.debug, second screen on dvi-d found

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 03/13] drm/nouveau: update to TTM no_wait splitted argument

2010-04-09 Thread Jerome Glisse
This patch update radeon to the new no_wait splitted argument
TTM functionality.

Compile tested only (but thing should run as there is no
operating change from driver point of view)

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/nouveau/nouveau_bo.c  |   45 ++--
 drivers/gpu/drm/nouveau/nouveau_gem.c |2 +-
 2 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c 
b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 0266124..5a167de 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -219,7 +219,7 @@ nouveau_bo_pin(struct nouveau_bo *nvbo, uint32_t memtype)
for (i = 0; i  nvbo-placement.num_placement; i++)
nvbo-placements[i] |= TTM_PL_FLAG_NO_EVICT;
 
-   ret = ttm_bo_validate(bo, nvbo-placement, false, false);
+   ret = ttm_bo_validate(bo, nvbo-placement, false, false, false);
if (ret == 0) {
switch (bo-mem.mem_type) {
case TTM_PL_VRAM:
@@ -256,7 +256,7 @@ nouveau_bo_unpin(struct nouveau_bo *nvbo)
for (i = 0; i  nvbo-placement.num_placement; i++)
nvbo-placements[i] = ~TTM_PL_FLAG_NO_EVICT;
 
-   ret = ttm_bo_validate(bo, nvbo-placement, false, false);
+   ret = ttm_bo_validate(bo, nvbo-placement, false, false, false);
if (ret == 0) {
switch (bo-mem.mem_type) {
case TTM_PL_VRAM:
@@ -456,7 +456,8 @@ nouveau_bo_evict_flags(struct ttm_buffer_object *bo, struct 
ttm_placement *pl)
 
 static int
 nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan,
- struct nouveau_bo *nvbo, bool evict, bool no_wait,
+ struct nouveau_bo *nvbo, bool evict,
+ bool no_wait_reserve, bool no_wait_gpu,
  struct ttm_mem_reg *new_mem)
 {
struct nouveau_fence *fence = NULL;
@@ -467,7 +468,7 @@ nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan,
return ret;
 
ret = ttm_bo_move_accel_cleanup(nvbo-bo, fence, NULL,
-   evict, no_wait, new_mem);
+   evict, no_wait_reserve, no_wait_gpu, 
new_mem);
if (nvbo-channel  nvbo-channel != chan)
ret = nouveau_fence_wait(fence, NULL, false, false);
nouveau_fence_unref((void *)fence);
@@ -491,7 +492,8 @@ nouveau_bo_mem_ctxdma(struct nouveau_bo *nvbo, struct 
nouveau_channel *chan,
 
 static int
 nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr,
-int no_wait, struct ttm_mem_reg *new_mem)
+bool no_wait_reserve, bool no_wait_gpu,
+struct ttm_mem_reg *new_mem)
 {
struct nouveau_bo *nvbo = nouveau_bo(bo);
struct drm_nouveau_private *dev_priv = nouveau_bdev(bo-bdev);
@@ -569,12 +571,13 @@ nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int 
evict, bool intr,
dst_offset += (PAGE_SIZE * line_count);
}
 
-   return nouveau_bo_move_accel_cleanup(chan, nvbo, evict, no_wait, 
new_mem);
+   return nouveau_bo_move_accel_cleanup(chan, nvbo, evict, 
no_wait_reserve, no_wait_gpu, new_mem);
 }
 
 static int
 nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr,
- bool no_wait, struct ttm_mem_reg *new_mem)
+ bool no_wait_reserve, bool no_wait_gpu,
+ struct ttm_mem_reg *new_mem)
 {
u32 placement_memtype = TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING;
struct ttm_placement placement;
@@ -587,7 +590,7 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool 
evict, bool intr,
 
tmp_mem = *new_mem;
tmp_mem.mm_node = NULL;
-   ret = ttm_bo_mem_space(bo, placement, tmp_mem, intr, no_wait);
+   ret = ttm_bo_mem_space(bo, placement, tmp_mem, intr, no_wait_reserve, 
no_wait_gpu);
if (ret)
return ret;
 
@@ -595,11 +598,11 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool 
evict, bool intr,
if (ret)
goto out;
 
-   ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait, tmp_mem);
+   ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait_reserve, 
no_wait_gpu, tmp_mem);
if (ret)
goto out;
 
-   ret = ttm_bo_move_ttm(bo, evict, no_wait, new_mem);
+   ret = ttm_bo_move_ttm(bo, evict, no_wait_reserve, no_wait_gpu, new_mem);
 out:
if (tmp_mem.mm_node) {
spin_lock(bo-bdev-glob-lru_lock);
@@ -612,7 +615,8 @@ out:
 
 static int
 nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, bool intr,
- bool no_wait, struct ttm_mem_reg *new_mem)
+ bool no_wait_reserve, bool no_wait_gpu,
+ struct ttm_mem_reg *new_mem)
 {
u32 placement_memtype = TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING;
 

[PATCH 01/13] drm/ttm: split no_wait argument in 2 GPU or reserve wait

2010-04-09 Thread Jerome Glisse
There is case where we want to be able to wait only for the
GPU while not waiting for other buffer to be unreserved. This
patch split the no_wait argument all the way down in the whole
ttm path so that upper level can decide on what to wait on or
not.

This patch break the API to other modules, update to others
driver are following in separate patches.

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/ttm/ttm_bo.c  |   57 
 drivers/gpu/drm/ttm/ttm_bo_util.c |9 --
 include/drm/ttm/ttm_bo_api.h  |6 ++-
 include/drm/ttm/ttm_bo_driver.h   |   29 +++---
 4 files changed, 60 insertions(+), 41 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index dd47b2a..40631e2 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -357,7 +357,8 @@ static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, 
bool zero_alloc)
 
 static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
  struct ttm_mem_reg *mem,
- bool evict, bool interruptible, bool no_wait)
+ bool evict, bool interruptible,
+ bool no_wait_reserve, bool no_wait_gpu)
 {
struct ttm_bo_device *bdev = bo-bdev;
bool old_is_pci = ttm_mem_reg_is_pci(bdev, bo-mem);
@@ -402,12 +403,12 @@ static int ttm_bo_handle_move_mem(struct 
ttm_buffer_object *bo,
 
if (!(old_man-flags  TTM_MEMTYPE_FLAG_FIXED) 
!(new_man-flags  TTM_MEMTYPE_FLAG_FIXED))
-   ret = ttm_bo_move_ttm(bo, evict, no_wait, mem);
+   ret = ttm_bo_move_ttm(bo, evict, no_wait_reserve, no_wait_gpu, 
mem);
else if (bdev-driver-move)
ret = bdev-driver-move(bo, evict, interruptible,
-no_wait, mem);
+no_wait_reserve, no_wait_gpu, mem);
else
-   ret = ttm_bo_move_memcpy(bo, evict, no_wait, mem);
+   ret = ttm_bo_move_memcpy(bo, evict, no_wait_reserve, 
no_wait_gpu, mem);
 
if (ret)
goto out_err;
@@ -606,7 +607,7 @@ void ttm_bo_unref(struct ttm_buffer_object **p_bo)
 EXPORT_SYMBOL(ttm_bo_unref);
 
 static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible,
-   bool no_wait)
+   bool no_wait_reserve, bool no_wait_gpu)
 {
struct ttm_bo_device *bdev = bo-bdev;
struct ttm_bo_global *glob = bo-glob;
@@ -615,7 +616,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool 
interruptible,
int ret = 0;
 
spin_lock(bo-lock);
-   ret = ttm_bo_wait(bo, false, interruptible, no_wait);
+   ret = ttm_bo_wait(bo, false, interruptible, no_wait_gpu);
spin_unlock(bo-lock);
 
if (unlikely(ret != 0)) {
@@ -638,7 +639,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool 
interruptible,
placement.num_busy_placement = 0;
bdev-driver-evict_flags(bo, placement);
ret = ttm_bo_mem_space(bo, placement, evict_mem, interruptible,
-   no_wait);
+   no_wait_reserve, no_wait_gpu);
if (ret) {
if (ret != -ERESTARTSYS) {
printk(KERN_ERR TTM_PFX
@@ -650,7 +651,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool 
interruptible,
}
 
ret = ttm_bo_handle_move_mem(bo, evict_mem, true, interruptible,
-no_wait);
+no_wait_reserve, no_wait_gpu);
if (ret) {
if (ret != -ERESTARTSYS)
printk(KERN_ERR TTM_PFX Buffer eviction failed\n);
@@ -670,7 +671,8 @@ out:
 
 static int ttm_mem_evict_first(struct ttm_bo_device *bdev,
uint32_t mem_type,
-   bool interruptible, bool no_wait)
+   bool interruptible, bool no_wait_reserve,
+   bool no_wait_gpu)
 {
struct ttm_bo_global *glob = bdev-glob;
struct ttm_mem_type_manager *man = bdev-man[mem_type];
@@ -687,11 +689,11 @@ retry:
bo = list_first_entry(man-lru, struct ttm_buffer_object, lru);
kref_get(bo-list_kref);
 
-   ret = ttm_bo_reserve_locked(bo, false, true, false, 0);
+   ret = ttm_bo_reserve_locked(bo, false, no_wait_reserve, false, 0);
 
if (unlikely(ret == -EBUSY)) {
spin_unlock(glob-lru_lock);
-   if (likely(!no_wait))
+   if (likely(!no_wait_gpu))
ret = ttm_bo_wait_unreserved(bo, interruptible);
 
kref_put(bo-list_kref, ttm_bo_release_list);
@@ -713,7 +715,7 @@ retry:
while (put_count--)
kref_put(bo-list_kref, ttm_bo_ref_bug);
 
-   ret = ttm_bo_evict(bo, 

[PATCH 04/13] drm/vmwgfx: update to TTM no_wait splitted argument

2010-04-09 Thread Jerome Glisse
This patch update radeon to the new no_wait splitted argument
TTM functionality.

Compile tested only (but thing should run as there is no
operating change from driver point of view)

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c |4 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c  |4 ++--
 drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c |2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index 0897359..dbd36b8 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -570,7 +570,7 @@ static int vmw_validate_single_buffer(struct vmw_private 
*dev_priv,
 * Put BO in VRAM, only if there is space.
 */
 
-   ret = ttm_bo_validate(bo, vmw_vram_sys_placement, true, false);
+   ret = ttm_bo_validate(bo, vmw_vram_sys_placement, true, false, false);
if (unlikely(ret == -ERESTARTSYS))
return ret;
 
@@ -590,7 +590,7 @@ static int vmw_validate_single_buffer(struct vmw_private 
*dev_priv,
 * previous contents.
 */
 
-   ret = ttm_bo_validate(bo, vmw_vram_placement, true, false);
+   ret = ttm_bo_validate(bo, vmw_vram_placement, true, false, false);
return ret;
 }
 
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
index a933670..80125ff 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
@@ -628,7 +628,7 @@ int vmw_dmabuf_from_vram(struct vmw_private *vmw_priv,
if (unlikely(ret != 0))
return ret;
 
-   ret = ttm_bo_validate(bo, vmw_sys_placement, false, false);
+   ret = ttm_bo_validate(bo, vmw_sys_placement, false, false, false);
ttm_bo_unreserve(bo);
 
return ret;
@@ -652,7 +652,7 @@ int vmw_dmabuf_to_start_of_vram(struct vmw_private 
*vmw_priv,
if (unlikely(ret != 0))
goto err_unlock;
 
-   ret = ttm_bo_validate(bo, ne_placement, false, false);
+   ret = ttm_bo_validate(bo, ne_placement, false, false, false);
ttm_bo_unreserve(bo);
 err_unlock:
ttm_write_unlock(vmw_priv-active_master-lock);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
index 5b6eabe..ad566c8 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
@@ -118,7 +118,7 @@ static int vmw_dmabuf_pin_in_vram(struct vmw_private 
*dev_priv,
if (pin)
overlay_placement = vmw_vram_ne_placement;
 
-   ret = ttm_bo_validate(bo, overlay_placement, interruptible, false);
+   ret = ttm_bo_validate(bo, overlay_placement, interruptible, false, 
false);
 
ttm_bo_unreserve(bo);
 
-- 
1.7.0.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 09/13] drm/radeon/kms: don't initialize TTM io memory manager field

2010-04-09 Thread Jerome Glisse
This isn't needed anymore with the new TTM fault callback

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/radeon_ttm.c |   13 +
 1 files changed, 1 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c 
b/drivers/gpu/drm/radeon/radeon_ttm.c
index 91333ec..d51c1c4 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -162,21 +162,13 @@ static int radeon_init_mem_type(struct ttm_bo_device 
*bdev, uint32_t type,
  (unsigned)type);
return -EINVAL;
}
-   man-io_offset = rdev-mc.agp_base;
-   man-io_size = rdev-mc.gtt_size;
-   man-io_addr = NULL;
if (!rdev-ddev-agp-cant_use_aperture)
man-flags = TTM_MEMTYPE_FLAG_MAPPABLE;
man-available_caching = TTM_PL_FLAG_UNCACHED |
 TTM_PL_FLAG_WC;
man-default_caching = TTM_PL_FLAG_WC;
-   } else
-#endif
-   {
-   man-io_offset = 0;
-   man-io_size = 0;
-   man-io_addr = NULL;
}
+#endif
break;
case TTM_PL_VRAM:
/* On-card video ram */
@@ -185,9 +177,6 @@ static int radeon_init_mem_type(struct ttm_bo_device *bdev, 
uint32_t type,
 TTM_MEMTYPE_FLAG_MAPPABLE;
man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC;
man-default_caching = TTM_PL_FLAG_WC;
-   man-io_addr = NULL;
-   man-io_offset = rdev-mc.aper_base;
-   man-io_size = rdev-mc.aper_size;
break;
default:
DRM_ERROR(Unsupported memory type %u\n, (unsigned)type);
-- 
1.7.0.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


unmappable vram v8

2010-04-09 Thread Jerome Glisse
Ok so here again this time ioremap is kept inside ttm so we don't
waste ioremap when faulting page.

Cheers,
Jerome


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 02/13] drm/radeon/kms: update to TTM no_wait splitted argument

2010-04-09 Thread Jerome Glisse
This patch update radeon to the new no_wait splitted argument
TTM functionality.

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/radeon_object.c |6 ++--
 drivers/gpu/drm/radeon/radeon_ttm.c|   39 +--
 2 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_object.c 
b/drivers/gpu/drm/radeon/radeon_object.c
index dc7e3f4..4b441f8 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -191,7 +191,7 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 
*gpu_addr)
}
for (i = 0; i  bo-placement.num_placement; i++)
bo-placements[i] |= TTM_PL_FLAG_NO_EVICT;
-   r = ttm_bo_validate(bo-tbo, bo-placement, false, false);
+   r = ttm_bo_validate(bo-tbo, bo-placement, false, false, false);
if (likely(r == 0)) {
bo-pin_count = 1;
if (gpu_addr != NULL)
@@ -215,7 +215,7 @@ int radeon_bo_unpin(struct radeon_bo *bo)
return 0;
for (i = 0; i  bo-placement.num_placement; i++)
bo-placements[i] = ~TTM_PL_FLAG_NO_EVICT;
-   r = ttm_bo_validate(bo-tbo, bo-placement, false, false);
+   r = ttm_bo_validate(bo-tbo, bo-placement, false, false, false);
if (unlikely(r != 0))
dev_err(bo-rdev-dev, %p validate failed for unpin\n, bo);
return r;
@@ -330,7 +330,7 @@ int radeon_bo_list_validate(struct list_head *head)
lobj-rdomain);
}
r = ttm_bo_validate(bo-tbo, bo-placement,
-   true, false);
+   true, false, false);
if (unlikely(r))
return r;
}
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c 
b/drivers/gpu/drm/radeon/radeon_ttm.c
index fc787e8..992dfc8 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -244,9 +244,9 @@ static void radeon_move_null(struct ttm_buffer_object *bo,
 }
 
 static int radeon_move_blit(struct ttm_buffer_object *bo,
-   bool evict, int no_wait,
-   struct ttm_mem_reg *new_mem,
-   struct ttm_mem_reg *old_mem)
+   bool evict, int no_wait_reserve, bool no_wait_gpu,
+   struct ttm_mem_reg *new_mem,
+   struct ttm_mem_reg *old_mem)
 {
struct radeon_device *rdev;
uint64_t old_start, new_start;
@@ -290,13 +290,14 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
r = radeon_copy(rdev, old_start, new_start, new_mem-num_pages, fence);
/* FIXME: handle copy error */
r = ttm_bo_move_accel_cleanup(bo, (void *)fence, NULL,
- evict, no_wait, new_mem);
+ evict, no_wait_reserve, no_wait_gpu, 
new_mem);
radeon_fence_unref(fence);
return r;
 }
 
 static int radeon_move_vram_ram(struct ttm_buffer_object *bo,
-   bool evict, bool interruptible, bool no_wait,
+   bool evict, bool interruptible,
+   bool no_wait_reserve, bool no_wait_gpu,
struct ttm_mem_reg *new_mem)
 {
struct radeon_device *rdev;
@@ -317,7 +318,7 @@ static int radeon_move_vram_ram(struct ttm_buffer_object 
*bo,
placement.busy_placement = placements;
placements = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT;
r = ttm_bo_mem_space(bo, placement, tmp_mem,
-interruptible, no_wait);
+interruptible, no_wait_reserve, no_wait_gpu);
if (unlikely(r)) {
return r;
}
@@ -331,11 +332,11 @@ static int radeon_move_vram_ram(struct ttm_buffer_object 
*bo,
if (unlikely(r)) {
goto out_cleanup;
}
-   r = radeon_move_blit(bo, true, no_wait, tmp_mem, old_mem);
+   r = radeon_move_blit(bo, true, no_wait_reserve, no_wait_gpu, tmp_mem, 
old_mem);
if (unlikely(r)) {
goto out_cleanup;
}
-   r = ttm_bo_move_ttm(bo, true, no_wait, new_mem);
+   r = ttm_bo_move_ttm(bo, true, no_wait_reserve, no_wait_gpu, new_mem);
 out_cleanup:
if (tmp_mem.mm_node) {
struct ttm_bo_global *glob = rdev-mman.bdev.glob;
@@ -349,7 +350,8 @@ out_cleanup:
 }
 
 static int radeon_move_ram_vram(struct ttm_buffer_object *bo,
-   bool evict, bool interruptible, bool no_wait,
+   bool evict, bool interruptible,
+   bool no_wait_reserve, bool no_wait_gpu,
struct ttm_mem_reg *new_mem)
 {
struct 

[PATCH 11/13] drm/vmwgfx: don't initialize TTM io memory manager field

2010-04-09 Thread Jerome Glisse
This isn't needed anymore with the new TTM fault callback

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c |6 --
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
index f355896..c4f5114 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
@@ -137,9 +137,6 @@ int vmw_invalidate_caches(struct ttm_bo_device *bdev, 
uint32_t flags)
 int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
  struct ttm_mem_type_manager *man)
 {
-   struct vmw_private *dev_priv =
-   container_of(bdev, struct vmw_private, bdev);
-
switch (type) {
case TTM_PL_SYSTEM:
/* System memory */
@@ -151,10 +148,7 @@ int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t 
type,
case TTM_PL_VRAM:
/* On-card video ram */
man-gpu_offset = 0;
-   man-io_offset = dev_priv-vram_start;
-   man-io_size = dev_priv-vram_size;
man-flags = TTM_MEMTYPE_FLAG_FIXED | TTM_MEMTYPE_FLAG_MAPPABLE;
-   man-io_addr = NULL;
man-available_caching = TTM_PL_MASK_CACHING;
man-default_caching = TTM_PL_FLAG_WC;
break;
-- 
1.7.0.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 05/13] drm/ttm: ttm_fault callback to allow driver to handle bo placement V6

2010-04-09 Thread Jerome Glisse
On fault the driver is given the opportunity to perform any operation
it sees fit in order to place the buffer into a CPU visible area of
memory. This patch doesn't break TTM users, nouveau, vmwgfx and radeon
should keep working properly. Future patch will take advantage of this
infrastructure and remove the old path from TTM once driver are
converted.

V2 return VM_FAULT_NOPAGE if callback return -EBUSY or -ERESTARTSYS
V3 balance io_mem_reserve and io_mem_free call, fault_reserve_notify
   is responsible to perform any necessary task for mapping to succeed
V4 minor cleanup, atomic_t - bool as member is protected by reserve
   mecanism from concurent access
V5 the callback is now responsible for iomapping the bo and providing
   a virtual address this simplify TTM and will allow to get rid of
   TTM_MEMTYPE_FLAG_NEEDS_IOREMAP
V6 use the bus addr data to decide to ioremap or this isn't needed
   but we don't necesarily need to ioremap in the callback but still
   allow driver to use static mapping

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/ttm/ttm_bo.c  |7 ++-
 drivers/gpu/drm/ttm/ttm_bo_util.c |  124 ++--
 drivers/gpu/drm/ttm/ttm_bo_vm.c   |   41 ++--
 include/drm/ttm/ttm_bo_api.h  |   23 +++
 include/drm/ttm/ttm_bo_driver.h   |   16 +-
 5 files changed, 126 insertions(+), 85 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 40631e2..b42e3fa 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -632,6 +632,7 @@ static int ttm_bo_evict(struct ttm_buffer_object *bo, bool 
interruptible,
 
evict_mem = bo-mem;
evict_mem.mm_node = NULL;
+   evict_mem.bus.io_reserved = false;
 
placement.fpfn = 0;
placement.lpfn = 0;
@@ -1005,6 +1006,7 @@ int ttm_bo_move_buffer(struct ttm_buffer_object *bo,
mem.num_pages = bo-num_pages;
mem.size = mem.num_pages  PAGE_SHIFT;
mem.page_alignment = bo-mem.page_alignment;
+   mem.bus.io_reserved = false;
/*
 * Determine where to move the buffer.
 */
@@ -1160,6 +1162,7 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
bo-mem.num_pages = bo-num_pages;
bo-mem.mm_node = NULL;
bo-mem.page_alignment = page_alignment;
+   bo-mem.bus.io_reserved = false;
bo-buffer_start = buffer_start  PAGE_MASK;
bo-priv_flags = 0;
bo-mem.placement = (TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED);
@@ -1574,7 +1577,7 @@ int ttm_bo_pci_offset(struct ttm_bo_device *bdev,
if (ttm_mem_reg_is_pci(bdev, mem)) {
*bus_offset = mem-mm_node-start  PAGE_SHIFT;
*bus_size = mem-num_pages  PAGE_SHIFT;
-   *bus_base = man-io_offset;
+   *bus_base = man-io_offset + (uintptr_t)man-io_addr;
}
 
return 0;
@@ -1588,8 +1591,8 @@ void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo)
 
if (!bdev-dev_mapping)
return;
-
unmap_mapping_range(bdev-dev_mapping, offset, holelen, 1);
+   ttm_mem_io_free(bdev, bo-mem);
 }
 EXPORT_SYMBOL(ttm_bo_unmap_virtual);
 
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c 
b/drivers/gpu/drm/ttm/ttm_bo_util.c
index 865b2a8..d58eeb5 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -81,30 +81,62 @@ int ttm_bo_move_ttm(struct ttm_buffer_object *bo,
 }
 EXPORT_SYMBOL(ttm_bo_move_ttm);
 
+int ttm_mem_io_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
+{
+   struct ttm_mem_type_manager *man = bdev-man[mem-mem_type];
+   int ret;
+
+   if (bdev-driver-io_mem_reserve) {
+   if (!mem-bus.io_reserved) {
+   mem-bus.io_reserved = true;
+   ret = bdev-driver-io_mem_reserve(bdev, mem);
+   if (unlikely(ret != 0))
+   return ret;
+   }
+   } else {
+   ret = ttm_bo_pci_offset(bdev, mem, mem-bus.base, 
mem-bus.offset, mem-bus.size);
+   if (unlikely(ret != 0))
+   return ret;
+   mem-bus.addr = NULL;
+   if (!(man-flags  TTM_MEMTYPE_FLAG_NEEDS_IOREMAP))
+   mem-bus.addr = (void *)(((u8 *)man-io_addr) + 
mem-bus.offset);
+   mem-bus.is_iomem = (mem-bus.size  0) ? 1 : 0;
+   }
+   return 0;
+}
+
+void ttm_mem_io_free(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
+{
+   if (bdev-driver-io_mem_reserve) {
+   if (mem-bus.io_reserved) {
+   mem-bus.io_reserved = false;
+   bdev-driver-io_mem_free(bdev, mem);
+   }
+   }
+}
+
 int ttm_mem_reg_ioremap(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem,
void **virtual)
 {
-   struct ttm_mem_type_manager *man = bdev-man[mem-mem_type];
-   unsigned long bus_offset;
-   unsigned long 

[PATCH 13/13] drm/radeon/kms: enable use of unmappable VRAM V2

2010-04-09 Thread Jerome Glisse
This patch enable the use of unmappable VRAM thanks to
previous TTM infrastructure change.

V2 update after io_mem_reserve/io_mem_free callback balancing

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/evergreen.c |5 -
 drivers/gpu/drm/radeon/r100.c  |5 -
 drivers/gpu/drm/radeon/r600.c  |5 -
 drivers/gpu/drm/radeon/rv770.c |5 -
 4 files changed, 0 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 7672f11..48e0dfb 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -475,11 +475,6 @@ int evergreen_mc_init(struct radeon_device *rdev)
rdev-mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
rdev-mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
rdev-mc.visible_vram_size = rdev-mc.aper_size;
-   /* FIXME remove this once we support unmappable VRAM */
-   if (rdev-mc.mc_vram_size  rdev-mc.aper_size) {
-   rdev-mc.mc_vram_size = rdev-mc.aper_size;
-   rdev-mc.real_vram_size = rdev-mc.aper_size;
-   }
r600_vram_gtt_location(rdev, rdev-mc);
radeon_update_bandwidth_info(rdev);
 
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index 7a4a4fc..f53dd52 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -2035,11 +2035,6 @@ void r100_vram_init_sizes(struct radeon_device *rdev)
else
rdev-mc.mc_vram_size = rdev-mc.real_vram_size;
}
-   /* FIXME remove this once we support unmappable VRAM */
-   if (rdev-mc.mc_vram_size  rdev-mc.aper_size) {
-   rdev-mc.mc_vram_size = rdev-mc.aper_size;
-   rdev-mc.real_vram_size = rdev-mc.aper_size;
-   }
 }
 
 void r100_vga_set_state(struct radeon_device *rdev, bool state)
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index 13c9cc3..fa3c1fe 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -713,11 +713,6 @@ int r600_mc_init(struct radeon_device *rdev)
rdev-mc.mc_vram_size = RREG32(CONFIG_MEMSIZE);
rdev-mc.real_vram_size = RREG32(CONFIG_MEMSIZE);
rdev-mc.visible_vram_size = rdev-mc.aper_size;
-   /* FIXME remove this once we support unmappable VRAM */
-   if (rdev-mc.mc_vram_size  rdev-mc.aper_size) {
-   rdev-mc.mc_vram_size = rdev-mc.aper_size;
-   rdev-mc.real_vram_size = rdev-mc.aper_size;
-   }
r600_vram_gtt_location(rdev, rdev-mc);
 
if (rdev-flags  RADEON_IS_IGP)
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
index 2b8a4e1..599121b 100644
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -905,11 +905,6 @@ int rv770_mc_init(struct radeon_device *rdev)
rdev-mc.mc_vram_size = RREG32(CONFIG_MEMSIZE);
rdev-mc.real_vram_size = RREG32(CONFIG_MEMSIZE);
rdev-mc.visible_vram_size = rdev-mc.aper_size;
-   /* FIXME remove this once we support unmappable VRAM */
-   if (rdev-mc.mc_vram_size  rdev-mc.aper_size) {
-   rdev-mc.mc_vram_size = rdev-mc.aper_size;
-   rdev-mc.real_vram_size = rdev-mc.aper_size;
-   }
r600_vram_gtt_location(rdev, rdev-mc);
radeon_update_bandwidth_info(rdev);
 
-- 
1.7.0.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 06/13] drm/radeon/kms: add support for new fault callback V7

2010-04-09 Thread Jerome Glisse
This add the support for the new fault callback and also the
infrastructure for supporting unmappable VRAM.

V2 validate BO with no_wait = true
V3 don't derefence bo-mem.mm_node as it's not NULL only for
   VRAM or GTT
V4 update to splitted no_wait ttm change
V5 update to new balanced io_mem_reserve/free change
V6 callback is responsible for iomapping memory
V7 move back iomapping to ttm

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/radeon_object.c |   26 +++-
 drivers/gpu/drm/radeon/radeon_object.h |2 +-
 drivers/gpu/drm/radeon/radeon_ttm.c|   51 +--
 3 files changed, 72 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_object.c 
b/drivers/gpu/drm/radeon/radeon_object.c
index 4b441f8..57b3f95 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -498,11 +498,33 @@ void radeon_bo_move_notify(struct ttm_buffer_object *bo,
radeon_bo_check_tiling(rbo, 0, 1);
 }
 
-void radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
+int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo)
 {
+   struct radeon_device *rdev;
struct radeon_bo *rbo;
+   unsigned long offset, size;
+   int r;
+
if (!radeon_ttm_bo_is_radeon_bo(bo))
-   return;
+   return 0;
rbo = container_of(bo, struct radeon_bo, tbo);
radeon_bo_check_tiling(rbo, 0, 0);
+   rdev = rbo-rdev;
+   if (bo-mem.mem_type == TTM_PL_VRAM) {
+   size = bo-mem.num_pages  PAGE_SHIFT;
+   offset = bo-mem.mm_node-start  PAGE_SHIFT;
+   if ((offset + size)  rdev-mc.visible_vram_size) {
+   /* hurrah the memory is not visible ! */
+   radeon_ttm_placement_from_domain(rbo, 
RADEON_GEM_DOMAIN_VRAM);
+   rbo-placement.lpfn = rdev-mc.visible_vram_size  
PAGE_SHIFT;
+   r = ttm_bo_validate(bo, rbo-placement, false, true, 
false);
+   if (unlikely(r != 0))
+   return r;
+   offset = bo-mem.mm_node-start  PAGE_SHIFT;
+   /* this should not happen */
+   if ((offset + size)  rdev-mc.visible_vram_size)
+   return -EINVAL;
+   }
+   }
+   return 0;
 }
diff --git a/drivers/gpu/drm/radeon/radeon_object.h 
b/drivers/gpu/drm/radeon/radeon_object.h
index 7ab43de..353998d 100644
--- a/drivers/gpu/drm/radeon/radeon_object.h
+++ b/drivers/gpu/drm/radeon/radeon_object.h
@@ -168,6 +168,6 @@ extern int radeon_bo_check_tiling(struct radeon_bo *bo, 
bool has_moved,
bool force_drop);
 extern void radeon_bo_move_notify(struct ttm_buffer_object *bo,
struct ttm_mem_reg *mem);
-extern void radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo);
+extern int radeon_bo_fault_reserve_notify(struct ttm_buffer_object *bo);
 extern int radeon_bo_get_surface_reg(struct radeon_bo *bo);
 #endif
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c 
b/drivers/gpu/drm/radeon/radeon_ttm.c
index 992dfc8..91333ec 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -166,8 +166,7 @@ static int radeon_init_mem_type(struct ttm_bo_device *bdev, 
uint32_t type,
man-io_size = rdev-mc.gtt_size;
man-io_addr = NULL;
if (!rdev-ddev-agp-cant_use_aperture)
-   man-flags = TTM_MEMTYPE_FLAG_NEEDS_IOREMAP |
-TTM_MEMTYPE_FLAG_MAPPABLE;
+   man-flags = TTM_MEMTYPE_FLAG_MAPPABLE;
man-available_caching = TTM_PL_FLAG_UNCACHED |
 TTM_PL_FLAG_WC;
man-default_caching = TTM_PL_FLAG_WC;
@@ -183,7 +182,6 @@ static int radeon_init_mem_type(struct ttm_bo_device *bdev, 
uint32_t type,
/* On-card video ram */
man-gpu_offset = rdev-mc.vram_start;
man-flags = TTM_MEMTYPE_FLAG_FIXED |
-TTM_MEMTYPE_FLAG_NEEDS_IOREMAP |
 TTM_MEMTYPE_FLAG_MAPPABLE;
man-available_caching = TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_WC;
man-default_caching = TTM_PL_FLAG_WC;
@@ -438,10 +436,53 @@ static int radeon_bo_move(struct ttm_buffer_object *bo,
 memcpy:
r = ttm_bo_move_memcpy(bo, evict, no_wait_reserve, no_wait_gpu, 
new_mem);
}
-
return r;
 }
 
+static int radeon_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct 
ttm_mem_reg *mem)
+{
+   struct ttm_mem_type_manager *man = bdev-man[mem-mem_type];
+   struct radeon_device *rdev = radeon_get_rdev(bdev);
+
+   mem-bus.addr = NULL;
+   mem-bus.offset = 0;

[PATCH 07/13] drm/nouveau/kms: add support for new TTM fault callback V5

2010-04-09 Thread Jerome Glisse
This add the support for the new fault callback, does change anything
from driver point of view, thought it should allow nouveau to add
support for unmappable VRAM.

Improvement: store the aperture base in a variable so that we don't
call a function to get it on each fault.

Patch hasn't been tested on any hw.

V2 don't derefence bo-mem.mm_node as it's not NULL only for
   VRAM or GTT
V3 update after io_mem_reserve/io_mem_free callback balancing
V4 callback has to ioremap
V5 ioremap is done by ttm

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/nouveau/nouveau_bo.c |   58 +++--
 1 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c 
b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 5a167de..288c2ec 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -386,8 +386,7 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, 
uint32_t type,
break;
case TTM_PL_VRAM:
man-flags = TTM_MEMTYPE_FLAG_FIXED |
-TTM_MEMTYPE_FLAG_MAPPABLE |
-TTM_MEMTYPE_FLAG_NEEDS_IOREMAP;
+TTM_MEMTYPE_FLAG_MAPPABLE;
man-available_caching = TTM_PL_FLAG_UNCACHED |
 TTM_PL_FLAG_WC;
man-default_caching = TTM_PL_FLAG_WC;
@@ -403,8 +402,7 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, 
uint32_t type,
case TTM_PL_TT:
switch (dev_priv-gart_info.type) {
case NOUVEAU_GART_AGP:
-   man-flags = TTM_MEMTYPE_FLAG_MAPPABLE |
-TTM_MEMTYPE_FLAG_NEEDS_IOREMAP;
+   man-flags = TTM_MEMTYPE_FLAG_MAPPABLE;
man-available_caching = TTM_PL_FLAG_UNCACHED;
man-default_caching = TTM_PL_FLAG_UNCACHED;
break;
@@ -761,6 +759,55 @@ nouveau_bo_verify_access(struct ttm_buffer_object *bo, 
struct file *filp)
return 0;
 }
 
+static int
+nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
+{
+   struct ttm_mem_type_manager *man = bdev-man[mem-mem_type];
+   struct drm_nouveau_private *dev_priv = nouveau_bdev(bdev);
+   struct drm_device *dev = dev_priv-dev;
+
+   mem-bus.addr = NULL;
+   mem-bus.offset = 0;
+   mem-bus.size = mem-num_pages  PAGE_SHIFT;
+   mem-bus.base = 0;
+   mem-bus.is_iomem = false;
+   if (!(man-flags  TTM_MEMTYPE_FLAG_MAPPABLE))
+   return -EINVAL;
+   switch (mem-mem_type) {
+   case TTM_PL_SYSTEM:
+   /* System memory */
+   return 0;
+   case TTM_PL_TT:
+#if __OS_HAS_AGP
+   if (dev_priv-gart_info.type == NOUVEAU_GART_AGP) {
+   mem-bus.offset = mem-mm_node-start  PAGE_SHIFT;
+   mem-bus.base = dev_priv-gart_info.aper_base;
+   mem-bus.is_iomem = true;
+   }
+#endif
+   break;
+   case TTM_PL_VRAM:
+   mem-bus.offset = mem-mm_node-start  PAGE_SHIFT;
+   mem-bus.base = drm_get_resource_start(dev, 1);
+   mem-bus.is_iomem = true;
+   break;
+   default:
+   return -EINVAL;
+   }
+   return 0;
+}
+
+static void
+nouveau_ttm_io_mem_free(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
+{
+}
+
+static int
+nouveau_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
+{
+   return 0;
+}
+
 struct ttm_bo_driver nouveau_bo_driver = {
.create_ttm_backend_entry = nouveau_bo_create_ttm_backend_entry,
.invalidate_caches = nouveau_bo_invalidate_caches,
@@ -773,5 +820,8 @@ struct ttm_bo_driver nouveau_bo_driver = {
.sync_obj_flush = nouveau_fence_flush,
.sync_obj_unref = nouveau_fence_unref,
.sync_obj_ref = nouveau_fence_ref,
+   .fault_reserve_notify = nouveau_ttm_fault_reserve_notify,
+   .io_mem_reserve = nouveau_ttm_io_mem_reserve,
+   .io_mem_free = nouveau_ttm_io_mem_free,
 };
 
-- 
1.7.0.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 08/13] drm/vmwgfx: add support for new TTM fault callback V5

2010-04-09 Thread Jerome Glisse
This add the support for the new fault callback, does change anything
from driver point of view.

Improvement: store the aperture base in a variable so that we don't
call a function to get it on each fault.

Patch hasn't been tested.

V2 don't derefence bo-mem.mm_node as it's not NULL only for
   VRAM or GTT
V3 update after io_mem_reserve/io_mem_free callback balancing
V4 callback has to ioremap
V5 ioremap is done by TTM

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c |   44 +--
 1 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
index 825ebe3..f355896 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
@@ -153,8 +153,7 @@ int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t 
type,
man-gpu_offset = 0;
man-io_offset = dev_priv-vram_start;
man-io_size = dev_priv-vram_size;
-   man-flags = TTM_MEMTYPE_FLAG_FIXED |
-   TTM_MEMTYPE_FLAG_NEEDS_IOREMAP | TTM_MEMTYPE_FLAG_MAPPABLE;
+   man-flags = TTM_MEMTYPE_FLAG_FIXED | TTM_MEMTYPE_FLAG_MAPPABLE;
man-io_addr = NULL;
man-available_caching = TTM_PL_MASK_CACHING;
man-default_caching = TTM_PL_FLAG_WC;
@@ -193,6 +192,42 @@ static void vmw_swap_notify(struct ttm_buffer_object *bo)
vmw_dmabuf_gmr_unbind(bo);
 }
 
+static int vmw_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct 
ttm_mem_reg *mem)
+{
+   struct ttm_mem_type_manager *man = bdev-man[mem-mem_type];
+   struct vmw_private *dev_priv = container_of(bdev, struct vmw_private, 
bdev);
+
+   mem-bus.addr = NULL;
+   mem-bus.is_iomem = false;
+   mem-bus.offset = 0;
+   mem-bus.size = mem-num_pages  PAGE_SHIFT;
+   mem-bus.base = 0;
+   if (!(man-flags  TTM_MEMTYPE_FLAG_MAPPABLE))
+   return -EINVAL;
+   switch (mem-mem_type) {
+   case TTM_PL_SYSTEM:
+   /* System memory */
+   return 0;
+   case TTM_PL_VRAM:
+   mem-bus.offset = mem-mm_node-start  PAGE_SHIFT;
+   mem-bus.base = dev_priv-vram_start;
+   mem-bus.is_iomem = true;
+   break;
+   default:
+   return -EINVAL;
+   }
+   return 0;
+}
+
+static void vmw_ttm_io_mem_free(struct ttm_bo_device *bdev, struct ttm_mem_reg 
*mem)
+{
+}
+
+static int vmw_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
+{
+   return 0;
+}
+
 /**
  * FIXME: We're using the old vmware polling method to sync.
  * Do this with fences instead.
@@ -248,5 +283,8 @@ struct ttm_bo_driver vmw_bo_driver = {
.sync_obj_unref = vmw_sync_obj_unref,
.sync_obj_ref = vmw_sync_obj_ref,
.move_notify = vmw_move_notify,
-   .swap_notify = vmw_swap_notify
+   .swap_notify = vmw_swap_notify,
+   .fault_reserve_notify = vmw_ttm_fault_reserve_notify,
+   .io_mem_reserve = vmw_ttm_io_mem_reserve,
+   .io_mem_free = vmw_ttm_io_mem_free,
 };
-- 
1.7.0.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 10/13] drm/nouveau/kms: don't initialize TTM io memory manager field

2010-04-09 Thread Jerome Glisse
This isn't needed anymore with the new TTM fault callback

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/nouveau/nouveau_bo.c |   11 ---
 1 files changed, 0 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c 
b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 288c2ec..34be192 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -390,13 +390,6 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, 
uint32_t type,
man-available_caching = TTM_PL_FLAG_UNCACHED |
 TTM_PL_FLAG_WC;
man-default_caching = TTM_PL_FLAG_WC;
-
-   man-io_addr = NULL;
-   man-io_offset = drm_get_resource_start(dev, 1);
-   man-io_size = drm_get_resource_len(dev, 1);
-   if (man-io_size  nouveau_mem_fb_amount(dev))
-   man-io_size = nouveau_mem_fb_amount(dev);
-
man-gpu_offset = dev_priv-vm_vram_base;
break;
case TTM_PL_TT:
@@ -417,10 +410,6 @@ nouveau_bo_init_mem_type(struct ttm_bo_device *bdev, 
uint32_t type,
 dev_priv-gart_info.type);
return -EINVAL;
}
-
-   man-io_offset  = dev_priv-gart_info.aper_base;
-   man-io_size= dev_priv-gart_info.aper_size;
-   man-io_addr   = NULL;
man-gpu_offset = dev_priv-vm_gart_base;
break;
default:
-- 
1.7.0.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 12/13] drm/ttm: remove io_ field from TTM V6

2010-04-09 Thread Jerome Glisse
All TTM driver have been converted to new io_mem_reserve/free
interface which allow driver to choose and return proper io
base, offset to core TTM for ioremapping if necessary. This
patch remove what is now deadcode.

V2 adapt to match with change in first patch of the patchset
V3 update after io_mem_reserve/io_mem_free callback balancing
V4 adjust to minor cleanup
V5 remove the needs ioremap flag
V6 keep the ioremapping facility in TTM
---
 drivers/gpu/drm/ttm/ttm_bo.c  |   22 --
 drivers/gpu/drm/ttm/ttm_bo_util.c |   19 ---
 include/drm/ttm/ttm_bo_driver.h   |   12 
 3 files changed, 4 insertions(+), 49 deletions(-)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index b42e3fa..3b5b094 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -79,8 +79,6 @@ static void ttm_mem_type_debug(struct ttm_bo_device *bdev, 
int mem_type)
printk(KERN_ERR TTM_PFX use_type: %d\n, man-use_type);
printk(KERN_ERR TTM_PFX flags: 0x%08X\n, man-flags);
printk(KERN_ERR TTM_PFX gpu_offset: 0x%08lX\n, man-gpu_offset);
-   printk(KERN_ERR TTM_PFX io_offset: 0x%08lX\n, man-io_offset);
-   printk(KERN_ERR TTM_PFX io_size: %ld\n, man-io_size);
printk(KERN_ERR TTM_PFX size: %llu\n, man-size);
printk(KERN_ERR TTM_PFX available_caching: 0x%08X\n,
man-available_caching);
@@ -1563,26 +1561,6 @@ bool ttm_mem_reg_is_pci(struct ttm_bo_device *bdev, 
struct ttm_mem_reg *mem)
return true;
 }
 
-int ttm_bo_pci_offset(struct ttm_bo_device *bdev,
- struct ttm_mem_reg *mem,
- unsigned long *bus_base,
- unsigned long *bus_offset, unsigned long *bus_size)
-{
-   struct ttm_mem_type_manager *man = bdev-man[mem-mem_type];
-
-   *bus_size = 0;
-   if (!(man-flags  TTM_MEMTYPE_FLAG_MAPPABLE))
-   return -EINVAL;
-
-   if (ttm_mem_reg_is_pci(bdev, mem)) {
-   *bus_offset = mem-mm_node-start  PAGE_SHIFT;
-   *bus_size = mem-num_pages  PAGE_SHIFT;
-   *bus_base = man-io_offset + (uintptr_t)man-io_addr;
-   }
-
-   return 0;
-}
-
 void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo)
 {
struct ttm_bo_device *bdev = bo-bdev;
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c 
b/drivers/gpu/drm/ttm/ttm_bo_util.c
index d58eeb5..333b401 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -83,24 +83,13 @@ EXPORT_SYMBOL(ttm_bo_move_ttm);
 
 int ttm_mem_io_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
 {
-   struct ttm_mem_type_manager *man = bdev-man[mem-mem_type];
int ret;
 
-   if (bdev-driver-io_mem_reserve) {
-   if (!mem-bus.io_reserved) {
-   mem-bus.io_reserved = true;
-   ret = bdev-driver-io_mem_reserve(bdev, mem);
-   if (unlikely(ret != 0))
-   return ret;
-   }
-   } else {
-   ret = ttm_bo_pci_offset(bdev, mem, mem-bus.base, 
mem-bus.offset, mem-bus.size);
+   if (!mem-bus.io_reserved) {
+   mem-bus.io_reserved = true;
+   ret = bdev-driver-io_mem_reserve(bdev, mem);
if (unlikely(ret != 0))
return ret;
-   mem-bus.addr = NULL;
-   if (!(man-flags  TTM_MEMTYPE_FLAG_NEEDS_IOREMAP))
-   mem-bus.addr = (void *)(((u8 *)man-io_addr) + 
mem-bus.offset);
-   mem-bus.is_iomem = (mem-bus.size  0) ? 1 : 0;
}
return 0;
 }
@@ -149,7 +138,7 @@ void ttm_mem_reg_iounmap(struct ttm_bo_device *bdev, struct 
ttm_mem_reg *mem,
 
man = bdev-man[mem-mem_type];
 
-   if (virtual  (man-flags  TTM_MEMTYPE_FLAG_NEEDS_IOREMAP || 
mem-bus.addr == NULL))
+   if (virtual  mem-bus.addr == NULL)
iounmap(virtual);
ttm_mem_io_free(bdev, mem);
 }
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index da39865..7720b17 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -176,8 +176,6 @@ struct ttm_tt {
 
 #define TTM_MEMTYPE_FLAG_FIXED (1  0)/* Fixed (on-card) PCI 
memory */
 #define TTM_MEMTYPE_FLAG_MAPPABLE  (1  1)/* Memory mappable */
-#define TTM_MEMTYPE_FLAG_NEEDS_IOREMAP (1  2)/* Fixed memory needs 
ioremap
-  before kernel access. */
 #define TTM_MEMTYPE_FLAG_CMA   (1  3)/* Can't map aperture */
 
 /**
@@ -189,13 +187,6 @@ struct ttm_tt {
  * managed by this memory type.
  * @gpu_offset: If used, the GPU offset of the first managed page of
  * fixed memory or the first managed location in an aperture.
- * @io_offset: The io_offset of the first managed page of IO memory or
- * the first managed location in an 

Re: [PATCH 05/13] drm/ttm: ttm_fault callback to allow driver to handle bo placement V5

2010-04-09 Thread Thomas Hellstrom
Dave Airlie wrote:
 On Wed, Apr 7, 2010 at 8:21 PM, Jerome Glisse jgli...@redhat.com wrote:
   
 On fault the driver is given the opportunity to perform any operation
 it sees fit in order to place the buffer into a CPU visible area of
 memory. This patch doesn't break TTM users, nouveau, vmwgfx and radeon
 should keep working properly. Future patch will take advantage of this
 infrastructure and remove the old path from TTM once driver are
 converted.

 V2 return VM_FAULT_NOPAGE if callback return -EBUSY or -ERESTARTSYS
 V3 balance io_mem_reserve and io_mem_free call, fault_reserve_notify
   is responsible to perform any necessary task for mapping to succeed
 V4 minor cleanup, atomic_t - bool as member is protected by reserve
   mecanism from concurent access
 V5 the callback is now responsible for iomapping the bo and providing
   a virtual address this simplify TTM and will allow to get rid of
   TTM_MEMTYPE_FLAG_NEEDS_IOREMAP
 

 Okay I've applied all these to drm-next and it fails to run X for longer than
 5 mins on my 32-bit machine.

 The whole IO reserve thing looks like a bad idea for anything but kmap,
 since it ioremap's the pages, but we have limited ioremap space on 32-bit,
 and you hit that and vmallocs all start failing soon after.

   
 -   ret = ttm_bo_pci_offset(bdev, bo-mem, bus_base, bus_offset,
 -   bus_size);
 -   if (unlikely(ret != 0)) {
 +   ret = ttm_mem_io_reserve(bdev, bo-mem);
 +   if (ret) {
retval = VM_FAULT_SIGBUS;
goto out_unlock;
}
 

 This is the start of the insanity, since ever bo that takes a
 userspace pagefault
 ends up using ioremap space for *no* reason whatsoever at all. You only need
 to use ioremap space if the *kernel* is accessing the bo not if userspace is,
 so really only in the kmap space.

 I've dropped it all from drm-next until you can resolve this.

 Dave.
   

Indeed, ttm_mem_io_reserve() shouldn't do anything like that. It should 
place the bo data in a mappable region. If there is a copy involving 
ioremap() to do so, it should be iounmapped() before the operation is 
finished.

Thomas



--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] tests/ programs need -lrt too since they use clock_gettime.

2010-04-09 Thread Török Edwin
When using the binutils gold linker, even if libdrm.so is already linked against
-lrt you still need to link your app against -lrt if your app needs symbols from
it.

Signed-off-by: Török Edwin edwinto...@gmail.com
---
 tests/Makefile.am |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 3e74705..81006ab 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -4,7 +4,7 @@ AM_CPPFLAGS = \
-I $(top_srcdir)/include/drm \
-I $(top_srcdir)
 
-LDADD = $(top_builddir)/libdrm.la
+LDADD = $(top_builddir)/libdrm.la @CLOCK_LIB@
 
 noinst_PROGRAMS = \
dristat \
-- 
1.7.0


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 15738] New: VGA output of Radeon HD3450 displays too bright colors with KMS radeon driver

2010-04-09 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=15738

   Summary: VGA output of Radeon HD3450 displays too bright colors
with KMS radeon driver
   Product: Drivers
   Version: 2.5
Kernel Version: 2.6.33.1 and 2.6.33.2
  Platform: All
OS/Version: Linux
  Tree: Mainline
Status: NEW
  Severity: normal
  Priority: P1
 Component: Video(DRI - non Intel)
AssignedTo: drivers_video-...@kernel-bugs.osdl.org
ReportedBy: realhang...@web.de
Regression: Yes


Hi,

2.6.33 is working fine for my amd64 Debian testing system with a dual-screen
setup (Radeon HD3450 with VGA and DVI outputs). I compiled this kernel with the
new KMS radeon driver and with the appropriate firmware.

However, if I compile 2.6.33.1 and 2.6.33.2 (with oldconfig from 2.6.33), the
VGA output of my videocard displays everything much too bright, right from the
start of the booting process and also after starting the X server.
The DVI output works fine.

I'm sorry that I can't give more information, I'd be glad to test things out if
you tell me what to try. I searched the internet over and over again, but no
one seems to have the same problem.

Best
Benjamin Scherrer

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27566] New: r300g segfaults in glDrawPixels

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27566

   Summary: r300g segfaults in glDrawPixels
   Product: Mesa
   Version: git
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: wixorp...@gmail.com


Created an attachment (id=34847)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34847)
the test program (compile with -std=c99)

The attached program causes segfault in r300g. Plain r300 works fine, however
the texture is drawn darkened

Environment:
  - Debian Linux, vanilla kernel 2.6.33,
  - mesa from git, up to commit 54526154c5b02be0fbae6b0dad766c6be1bee21c
  - radeon ddx 1:6.12.192-2 (changelog says: pull from upstream master up to
commit 5c256808)
  - libdrm 2.4.18-3
  - Radeon x1300 (RV515)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27566] r300g segfaults in glDrawPixels

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27566

--- Comment #1 from Wiktor Janas wixorp...@gmail.com 2010-04-09 08:37:09 PDT 
---
Created an attachment (id=34848)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34848)
the backtrace

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27566] r300g segfaults in glDrawPixels

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27566

Wiktor Janas wixorp...@gmail.com changed:

   What|Removed |Added

  Attachment #34848|application/octet-stream|text/plain
  mime type||

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27566] r300g segfaults in glDrawPixels

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27566

--- Comment #2 from Brian Paul bri...@vmware.com 2010-04-09 08:47:37 PDT ---
Looks like a state tracker issue.  I'm looking into it...

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27566] r300g segfaults in glDrawPixels

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27566

Brian Paul bri...@vmware.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #3 from Brian Paul bri...@vmware.com 2010-04-09 09:05:06 PDT ---
Fixed on the 7.8 branch with commit b22a00bff4aadd390dd8af6b5b05bd2833ec7f85.
Will merge to master in a bit.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm/edid: When checking duplicate standard modes, walked the probed list

2010-04-09 Thread Adam Jackson
... and not the global list.

Signed-off-by: Adam Jackson a...@redhat.com
---
 drivers/gpu/drm/drm_edid.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index c4a578e..b407eef 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -694,7 +694,7 @@ drm_mode_std(struct drm_connector *connector, struct edid 
*edid,
 * instead.  This way we don't have to guess at interlace or
 * reduced blanking.
 */
-   list_for_each_entry(m, connector-modes, head)
+   list_for_each_entry(m, connector-probed_modes, head)
if (m-hdisplay == hsize  m-vdisplay == vsize 
drm_mode_vrefresh(m) == vrefresh_rate)
return NULL;
-- 
1.6.6.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 15736] Radeon crashes booting after enabling KMS

2010-04-09 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=15736


Pauli suok...@gmail.com changed:

   What|Removed |Added

 CC||suok...@gmail.com




--- Comment #1 from Pauli suok...@gmail.com  2010-04-09 17:31:33 ---
Problem is that the agpgart module isn't loaded before drm.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 15736] Radeon crashes booting after enabling KMS

2010-04-09 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=15736





--- Comment #2 from Marc Haber mh+kernel-bugzi...@zugschlus.de  2010-04-09 
17:59:48 ---
Really? The log doesn't contain the string drm before Linux agpgart
interface v0.103?

Greetings
Marc

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm/radeon/kms: more atom parser fixes

2010-04-09 Thread Alex Deucher
From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001
From: Alex Deucher alexdeuc...@gmail.com
Date: Fri, 9 Apr 2010 14:27:18 -0400
Subject: [PATCH] drm/radeon/kms: more atom parser fixes

shr/shl ops need the full dst rather than the pre-masked
version.  Fixes fdo bug 27478 and kernel bug 15738.

Signed-off-by: Alex Deucher alexdeuc...@gmail.com
---
 drivers/gpu/drm/radeon/atom.c |   12 ++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index 58845e0..44c8cbd 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -905,13 +905,17 @@ static void
atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg)
 static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg)
 {
uint8_t attr = U8((*ptr)++), shift;
-   uint32_t saved, dst;
+   uint32_t saved, dst, tmp;
int dptr = *ptr;
+   uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  3];
SDEBUG(   dst: );
dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
+   dst = saved;
shift = atom_get_src(ctx, attr, ptr);
SDEBUG(   shift: %d\n, shift);
dst = shift;
+   dst = atom_arg_mask[dst_align];
+   dst = atom_arg_shift[dst_align];
SDEBUG(   dst: );
atom_put_dst(ctx, arg, attr, dptr, dst, saved);
 }
@@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx,
int *ptr, int arg)
 static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg)
 {
uint8_t attr = U8((*ptr)++), shift;
-   uint32_t saved, dst;
+   uint32_t saved, dst, tmp;
int dptr = *ptr;
+   uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  3];
SDEBUG(   dst: );
dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
+   dst = saved;
shift = atom_get_src(ctx, attr, ptr);
SDEBUG(   shift: %d\n, shift);
dst = shift;
+   dst = atom_arg_mask[dst_align];
+   dst = atom_arg_shift[dst_align];
SDEBUG(   dst: );
atom_put_dst(ctx, arg, attr, dptr, dst, saved);
 }
-- 
1.5.6.3
From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001
From: Alex Deucher alexdeuc...@gmail.com
Date: Fri, 9 Apr 2010 14:27:18 -0400
Subject: [PATCH] drm/radeon/kms: more atom parser fixes

shr/shl ops need the full dst rather than the pre-masked
version.  Fixes fdo bug 27478 and kernel bug 15738.

Signed-off-by: Alex Deucher alexdeuc...@gmail.com
---
 drivers/gpu/drm/radeon/atom.c |   12 ++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index 58845e0..44c8cbd 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -905,13 +905,17 @@ static void atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg)
 static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg)
 {
 	uint8_t attr = U8((*ptr)++), shift;
-	uint32_t saved, dst;
+	uint32_t saved, dst, tmp;
 	int dptr = *ptr;
+	uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  3];
 	SDEBUG(   dst: );
 	dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
+	dst = saved;
 	shift = atom_get_src(ctx, attr, ptr);
 	SDEBUG(   shift: %d\n, shift);
 	dst = shift;
+	dst = atom_arg_mask[dst_align];
+	dst = atom_arg_shift[dst_align];
 	SDEBUG(   dst: );
 	atom_put_dst(ctx, arg, attr, dptr, dst, saved);
 }
@@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg)
 static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg)
 {
 	uint8_t attr = U8((*ptr)++), shift;
-	uint32_t saved, dst;
+	uint32_t saved, dst, tmp;
 	int dptr = *ptr;
+	uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  3];
 	SDEBUG(   dst: );
 	dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
+	dst = saved;
 	shift = atom_get_src(ctx, attr, ptr);
 	SDEBUG(   shift: %d\n, shift);
 	dst = shift;
+	dst = atom_arg_mask[dst_align];
+	dst = atom_arg_shift[dst_align];
 	SDEBUG(   dst: );
 	atom_put_dst(ctx, arg, attr, dptr, dst, saved);
 }
-- 
1.5.6.3

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 15738] VGA output of Radeon HD3450 displays too bright colors with KMS radeon driver

2010-04-09 Thread bugzilla-daemon
https://bugzilla.kernel.org/show_bug.cgi?id=15738





--- Comment #1 from Alex Deucher alexdeuc...@gmail.com  2010-04-09 18:42:38 
---
Created an attachment (id=25932)
 -- (https://bugzilla.kernel.org/attachment.cgi?id=25932)
fix atom parser bug

This patch fixes the issue.

-- 
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are watching the assignee of the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm/radeon/kms: more atom parser fixes

2010-04-09 Thread Alex Deucher
This should go to stable as well.  Forgot to add the stable cc.

Alex

On Fri, Apr 9, 2010 at 2:41 PM, Alex Deucher alexdeuc...@gmail.com wrote:
 From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001
 From: Alex Deucher alexdeuc...@gmail.com
 Date: Fri, 9 Apr 2010 14:27:18 -0400
 Subject: [PATCH] drm/radeon/kms: more atom parser fixes

 shr/shl ops need the full dst rather than the pre-masked
 version.  Fixes fdo bug 27478 and kernel bug 15738.

 Signed-off-by: Alex Deucher alexdeuc...@gmail.com
 ---
  drivers/gpu/drm/radeon/atom.c |   12 ++--
  1 files changed, 10 insertions(+), 2 deletions(-)

 diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
 index 58845e0..44c8cbd 100644
 --- a/drivers/gpu/drm/radeon/atom.c
 +++ b/drivers/gpu/drm/radeon/atom.c
 @@ -905,13 +905,17 @@ static void
 atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg)
  static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg)
  {
        uint8_t attr = U8((*ptr)++), shift;
 -       uint32_t saved, dst;
 +       uint32_t saved, dst, tmp;
        int dptr = *ptr;
 +       uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  
 3];
        SDEBUG(   dst: );
        dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
 +       dst = saved;
        shift = atom_get_src(ctx, attr, ptr);
        SDEBUG(   shift: %d\n, shift);
        dst = shift;
 +       dst = atom_arg_mask[dst_align];
 +       dst = atom_arg_shift[dst_align];
        SDEBUG(   dst: );
        atom_put_dst(ctx, arg, attr, dptr, dst, saved);
  }
 @@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx,
 int *ptr, int arg)
  static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg)
  {
        uint8_t attr = U8((*ptr)++), shift;
 -       uint32_t saved, dst;
 +       uint32_t saved, dst, tmp;
        int dptr = *ptr;
 +       uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  
 3];
        SDEBUG(   dst: );
        dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
 +       dst = saved;
        shift = atom_get_src(ctx, attr, ptr);
        SDEBUG(   shift: %d\n, shift);
        dst = shift;
 +       dst = atom_arg_mask[dst_align];
 +       dst = atom_arg_shift[dst_align];
        SDEBUG(   dst: );
        atom_put_dst(ctx, arg, attr, dptr, dst, saved);
  }
 --
 1.5.6.3


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 3/6] drm/i915: introduce i915_gem_alloc_object

2010-04-09 Thread Daniel Vetter
Just preparation, no functional change.

Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 drivers/gpu/drm/i915/i915_drv.h  |2 ++
 drivers/gpu/drm/i915/i915_gem.c  |   12 +---
 drivers/gpu/drm/i915/intel_display.c |2 +-
 drivers/gpu/drm/i915/intel_fb.c  |2 +-
 drivers/gpu/drm/i915/intel_overlay.c |2 +-
 5 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b7cb4aa..3d4e135 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -893,6 +893,8 @@ int i915_gem_get_aperture_ioctl(struct drm_device *dev, 
void *data,
struct drm_file *file_priv);
 void i915_gem_load(struct drm_device *dev);
 int i915_gem_init_object(struct drm_gem_object *obj);
+struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev,
+ size_t size);
 void i915_gem_free_object(struct drm_gem_object *obj);
 int i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment);
 void i915_gem_object_unpin(struct drm_gem_object *obj);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index d4ea909..92dd522 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -124,7 +124,7 @@ i915_gem_create_ioctl(struct drm_device *dev, void *data,
args-size = roundup(args-size, PAGE_SIZE);
 
/* Allocate the new object */
-   obj = drm_gem_object_alloc(dev, args-size);
+   obj = i915_gem_alloc_object(dev, args-size);
if (obj == NULL)
return -ENOMEM;
 
@@ -4421,6 +4421,12 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void 
*data,
return 0;
 }
 
+struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev,
+ size_t size)
+{
+   return drm_gem_object_alloc(dev, size);
+}
+
 int i915_gem_init_object(struct drm_gem_object *obj)
 {
struct drm_i915_gem_object *obj_priv;
@@ -4563,7 +4569,7 @@ i915_gem_init_hws(struct drm_device *dev)
if (!I915_NEED_GFX_HWS(dev))
return 0;
 
-   obj = drm_gem_object_alloc(dev, 4096);
+   obj = i915_gem_alloc_object(dev, 4096);
if (obj == NULL) {
DRM_ERROR(Failed to allocate status page\n);
return -ENOMEM;
@@ -4640,7 +4646,7 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
if (ret != 0)
return ret;
 
-   obj = drm_gem_object_alloc(dev, 128 * 1024);
+   obj = i915_gem_alloc_object(dev, 128 * 1024);
if (obj == NULL) {
DRM_ERROR(Failed to allocate ringbuffer\n);
i915_gem_cleanup_hws(dev);
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index eb9d825..bc775b6 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4598,7 +4598,7 @@ intel_alloc_power_context(struct drm_device *dev)
struct drm_gem_object *pwrctx;
int ret;
 
-   pwrctx = drm_gem_object_alloc(dev, 4096);
+   pwrctx = i915_gem_alloc_object(dev, 4096);
if (!pwrctx) {
DRM_DEBUG(failed to alloc power context, RC6 disabled\n);
return NULL;
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
index 8a0b3bc..c7af7e1 100644
--- a/drivers/gpu/drm/i915/intel_fb.c
+++ b/drivers/gpu/drm/i915/intel_fb.c
@@ -138,7 +138,7 @@ static int intelfb_create(struct drm_device *dev, uint32_t 
fb_width,
 
size = mode_cmd.pitch * mode_cmd.height;
size = ALIGN(size, PAGE_SIZE);
-   fbo = drm_gem_object_alloc(dev, size);
+   fbo = i915_gem_alloc_object(dev, size);
if (!fbo) {
DRM_ERROR(failed to allocate framebuffer\n);
ret = -ENOMEM;
diff --git a/drivers/gpu/drm/i915/intel_overlay.c 
b/drivers/gpu/drm/i915/intel_overlay.c
index 6d524a1..bc3721a 100644
--- a/drivers/gpu/drm/i915/intel_overlay.c
+++ b/drivers/gpu/drm/i915/intel_overlay.c
@@ -1341,7 +1341,7 @@ void intel_setup_overlay(struct drm_device *dev)
return;
overlay-dev = dev;
 
-   reg_bo = drm_gem_object_alloc(dev, PAGE_SIZE);
+   reg_bo = i915_gem_alloc_object(dev, PAGE_SIZE);
if (!reg_bo)
goto out_free;
overlay-reg_bo = to_intel_bo(reg_bo);
-- 
1.6.6.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 1/6] drm: extract drm_gem_object_init

2010-04-09 Thread Daniel Vetter
This function can be used by drivers who allocate the drm gem object
on their own. No functional change in here, just preparation.

Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 drivers/gpu/drm/drm_gem.c |   39 +--
 include/drm/drmP.h|2 ++
 2 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index aa89d4b..3b64d0e 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -124,6 +124,31 @@ drm_gem_destroy(struct drm_device *dev)
 }
 
 /**
+ * Initialize an already allocate GEM object of the specified size with
+ * shmfs backing store.
+ */
+int drm_gem_object_init(struct drm_device *dev,
+   struct drm_gem_object *obj, size_t size)
+{
+   BUG_ON((size  (PAGE_SIZE - 1)) != 0);
+
+   obj-dev = dev;
+   obj-filp = shmem_file_setup(drm mm object, size, VM_NORESERVE);
+   if (IS_ERR(obj-filp))
+   return -ENOMEM;
+
+   kref_init(obj-refcount);
+   kref_init(obj-handlecount);
+   obj-size = size;
+
+   atomic_inc(dev-object_count);
+   atomic_add(obj-size, dev-object_memory);
+
+   return 0;
+}
+EXPORT_SYMBOL(drm_gem_object_init);
+
+/**
  * Allocate a GEM object of the specified size with shmfs backing store
  */
 struct drm_gem_object *
@@ -131,28 +156,22 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size)
 {
struct drm_gem_object *obj;
 
-   BUG_ON((size  (PAGE_SIZE - 1)) != 0);
-
obj = kzalloc(sizeof(*obj), GFP_KERNEL);
if (!obj)
goto free;
 
-   obj-dev = dev;
-   obj-filp = shmem_file_setup(drm mm object, size, VM_NORESERVE);
-   if (IS_ERR(obj-filp))
+   if (drm_gem_object_init(dev, obj, size) != 0)
goto free;
 
-   kref_init(obj-refcount);
-   kref_init(obj-handlecount);
-   obj-size = size;
if (dev-driver-gem_init_object != NULL 
dev-driver-gem_init_object(obj) != 0) {
goto fput;
}
-   atomic_inc(dev-object_count);
-   atomic_add(obj-size, dev-object_memory);
return obj;
 fput:
+   /* Object_init mangles the global counters - readjust them. */
+   atomic_dec(dev-object_count);
+   atomic_sub(obj-size, dev-object_memory);
fput(obj-filp);
 free:
kfree(obj);
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 2f3b3a0..b3b57b5 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1432,6 +1432,8 @@ void drm_gem_object_free(struct kref *kref);
 void drm_gem_object_free_unlocked(struct kref *kref);
 struct drm_gem_object *drm_gem_object_alloc(struct drm_device *dev,
size_t size);
+int drm_gem_object_init(struct drm_device *dev,
+   struct drm_gem_object *obj, size_t size);
 void drm_gem_object_handle_free(struct kref *kref);
 void drm_gem_vm_open(struct vm_area_struct *vma);
 void drm_gem_vm_close(struct vm_area_struct *vma);
-- 
1.6.6.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 2/6] drm: free core gem object from driver callbacks

2010-04-09 Thread Daniel Vetter
When drivers embed the core gem object into their own structures,
they'll have to do this. Temporarily this results in an ugly

kfree(gem_obj);

in every gem driver.

Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 drivers/gpu/drm/drm_gem.c |   10 +++---
 drivers/gpu/drm/i915/i915_gem.c   |3 +++
 drivers/gpu/drm/nouveau/nouveau_gem.c |3 +++
 drivers/gpu/drm/radeon/radeon_gem.c   |3 +++
 include/drm/drmP.h|1 +
 5 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 3b64d0e..33dad3f 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -422,15 +422,15 @@ drm_gem_release(struct drm_device *dev, struct drm_file 
*file_private)
idr_destroy(file_private-object_idr);
 }
 
-static void
-drm_gem_object_free_common(struct drm_gem_object *obj)
+void
+drm_gem_object_release(struct drm_gem_object *obj)
 {
struct drm_device *dev = obj-dev;
fput(obj-filp);
atomic_dec(dev-object_count);
atomic_sub(obj-size, dev-object_memory);
-   kfree(obj);
 }
+EXPORT_SYMBOL(drm_gem_object_release);
 
 /**
  * Called after the last reference to the object has been lost.
@@ -448,8 +448,6 @@ drm_gem_object_free(struct kref *kref)
 
if (dev-driver-gem_free_object != NULL)
dev-driver-gem_free_object(obj);
-
-   drm_gem_object_free_common(obj);
 }
 EXPORT_SYMBOL(drm_gem_object_free);
 
@@ -472,8 +470,6 @@ drm_gem_object_free_unlocked(struct kref *kref)
dev-driver-gem_free_object(obj);
mutex_unlock(dev-struct_mutex);
}
-
-   drm_gem_object_free_common(obj);
 }
 EXPORT_SYMBOL(drm_gem_object_free_unlocked);
 
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 80871c6..d4ea909 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4474,6 +4474,9 @@ void i915_gem_free_object(struct drm_gem_object *obj)
kfree(obj_priv-page_cpu_valid);
kfree(obj_priv-bit_17);
kfree(obj-driver_private);
+
+   drm_gem_object_release(obj);
+   kfree(obj);
 }
 
 /** Unbinds all inactive objects. */
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c 
b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 0d22f66..cc6b191 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -57,6 +57,9 @@ nouveau_gem_object_del(struct drm_gem_object *gem)
}
 
ttm_bo_unref(bo);
+
+   drm_gem_object_release(gem);
+   kfree(gem);
 }
 
 int
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c 
b/drivers/gpu/drm/radeon/radeon_gem.c
index ef92d14..833454a 100644
--- a/drivers/gpu/drm/radeon/radeon_gem.c
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
@@ -44,6 +44,9 @@ void radeon_gem_object_free(struct drm_gem_object *gobj)
if (robj) {
radeon_bo_unref(robj);
}
+
+   drm_gem_object_release(gobj);
+   kfree(gobj);
 }
 
 int radeon_gem_object_create(struct radeon_device *rdev, int size,
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index b3b57b5..c1b9871 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1428,6 +1428,7 @@ extern void drm_sysfs_connector_remove(struct 
drm_connector *connector);
 /* Graphics Execution Manager library functions (drm_gem.c) */
 int drm_gem_init(struct drm_device *dev);
 void drm_gem_destroy(struct drm_device *dev);
+void drm_gem_object_release(struct drm_gem_object *obj);
 void drm_gem_object_free(struct kref *kref);
 void drm_gem_object_free_unlocked(struct kref *kref);
 struct drm_gem_object *drm_gem_object_alloc(struct drm_device *dev,
-- 
1.6.6.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 6/6] drm/i915: drop pointer to drm_gem_object

2010-04-09 Thread Daniel Vetter
Luckily the change is quite a little bit less invasive than I've
feared.

Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 drivers/gpu/drm/i915/i915_debugfs.c   |   15 +++
 drivers/gpu/drm/i915/i915_drv.h   |1 -
 drivers/gpu/drm/i915/i915_gem.c   |   21 ++---
 drivers/gpu/drm/i915/i915_gem_debug.c |2 +-
 drivers/gpu/drm/i915/i915_irq.c   |4 ++--
 drivers/gpu/drm/i915/intel_overlay.c  |6 +++---
 6 files changed, 23 insertions(+), 26 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index a0b8447..213aa3f 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -96,19 +96,18 @@ static int i915_gem_object_list_info(struct seq_file *m, 
void *data)
spin_lock(lock);
list_for_each_entry(obj_priv, head, list)
{
-   struct drm_gem_object *obj = obj_priv-obj;
-
seq_printf(m, %p: %s %8zd %08x %08x %d%s%s,
-  obj,
+  obj_priv-base,
   get_pin_flag(obj_priv),
-  obj-size,
-  obj-read_domains, obj-write_domain,
+  obj_priv-base.size,
+  obj_priv-base.read_domains,
+  obj_priv-base.write_domain,
   obj_priv-last_rendering_seqno,
   obj_priv-dirty ?  dirty : ,
   obj_priv-madv == I915_MADV_DONTNEED ?  purgeable 
: );
 
-   if (obj-name)
-   seq_printf(m,  (name: %d), obj-name);
+   if (obj_priv-base.name)
+   seq_printf(m,  (name: %d), obj_priv-base.name);
if (obj_priv-fence_reg != I915_FENCE_REG_NONE)
seq_printf(m,  (fence: %d), obj_priv-fence_reg);
if (obj_priv-gtt_space != NULL)
@@ -289,7 +288,7 @@ static int i915_batchbuffer_info(struct seq_file *m, void 
*data)
spin_lock(dev_priv-mm.active_list_lock);
 
list_for_each_entry(obj_priv, dev_priv-mm.active_list, list) {
-   obj = obj_priv-obj;
+   obj = obj_priv-base;
if (obj-read_domains  I915_GEM_DOMAIN_COMMAND) {
ret = i915_gem_object_get_pages(obj, 0);
if (ret) {
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index c5c7ce0..1b44ca7 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -633,7 +633,6 @@ typedef struct drm_i915_private {
 /** driver private structure attached to each drm_gem_object */
 struct drm_i915_gem_object {
struct drm_gem_object base;
-   struct drm_gem_object *obj;
 
/** Current space allocated to this object in the GTT, if any. */
struct drm_mm_node *gtt_space;
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 7c8c01b..47c46ed 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1566,7 +1566,7 @@ i915_gem_process_flushing_list(struct drm_device *dev,
list_for_each_entry_safe(obj_priv, next,
 dev_priv-mm.gpu_write_list,
 gpu_write_list) {
-   struct drm_gem_object *obj = obj_priv-obj;
+   struct drm_gem_object *obj = obj_priv-base;
 
if ((obj-write_domain  flush_domains) ==
obj-write_domain) {
@@ -1704,7 +1704,7 @@ i915_gem_retire_request(struct drm_device *dev,
obj_priv = list_first_entry(dev_priv-mm.active_list,
struct drm_i915_gem_object,
list);
-   obj = obj_priv-obj;
+   obj = obj_priv-base;
 
/* If the seqno being retired doesn't match the oldest in the
 * list, then the oldest in the list must still be newer than
@@ -2075,7 +2075,7 @@ i915_gem_find_inactive_object(struct drm_device *dev, int 
min_size)
 
/* Try to find the smallest clean object */
list_for_each_entry(obj_priv, dev_priv-mm.inactive_list, list) {
-   struct drm_gem_object *obj = obj_priv-obj;
+   struct drm_gem_object *obj = obj_priv-base;
if (obj-size = min_size) {
if ((!obj_priv-dirty ||
 i915_gem_object_is_purgeable(obj_priv)) 
@@ -2209,7 +2209,7 @@ i915_gem_evict_something(struct drm_device *dev, int 
min_size)
 
/* Find an object that we can immediately reuse */
list_for_each_entry(obj_priv, 
dev_priv-mm.flushing_list, list) {
-   obj = obj_priv-obj;
+   obj = obj_priv-base;
if (obj-size = min_size)
  

Re: [PATCH] drm/radeon/kms: more atom parser fixes

2010-04-09 Thread Alex Deucher
Updated version with stable cc and remove some leftover unused vars
noticed by roysjosh on IRC.

Alex

On Fri, Apr 9, 2010 at 2:41 PM, Alex Deucher alexdeuc...@gmail.com wrote:
 From 44cc309323e38fc4fa7b7c7bea190aeaa0abd224 Mon Sep 17 00:00:00 2001
 From: Alex Deucher alexdeuc...@gmail.com
 Date: Fri, 9 Apr 2010 14:27:18 -0400
 Subject: [PATCH] drm/radeon/kms: more atom parser fixes

 shr/shl ops need the full dst rather than the pre-masked
 version.  Fixes fdo bug 27478 and kernel bug 15738.

 Signed-off-by: Alex Deucher alexdeuc...@gmail.com
 ---
  drivers/gpu/drm/radeon/atom.c |   12 ++--
  1 files changed, 10 insertions(+), 2 deletions(-)

 diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
 index 58845e0..44c8cbd 100644
 --- a/drivers/gpu/drm/radeon/atom.c
 +++ b/drivers/gpu/drm/radeon/atom.c
 @@ -905,13 +905,17 @@ static void
 atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg)
  static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg)
  {
        uint8_t attr = U8((*ptr)++), shift;
 -       uint32_t saved, dst;
 +       uint32_t saved, dst, tmp;
        int dptr = *ptr;
 +       uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  
 3];
        SDEBUG(   dst: );
        dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
 +       dst = saved;
        shift = atom_get_src(ctx, attr, ptr);
        SDEBUG(   shift: %d\n, shift);
        dst = shift;
 +       dst = atom_arg_mask[dst_align];
 +       dst = atom_arg_shift[dst_align];
        SDEBUG(   dst: );
        atom_put_dst(ctx, arg, attr, dptr, dst, saved);
  }
 @@ -919,13 +923,17 @@ static void atom_op_shl(atom_exec_context *ctx,
 int *ptr, int arg)
  static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg)
  {
        uint8_t attr = U8((*ptr)++), shift;
 -       uint32_t saved, dst;
 +       uint32_t saved, dst, tmp;
        int dptr = *ptr;
 +       uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  
 3];
        SDEBUG(   dst: );
        dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
 +       dst = saved;
        shift = atom_get_src(ctx, attr, ptr);
        SDEBUG(   shift: %d\n, shift);
        dst = shift;
 +       dst = atom_arg_mask[dst_align];
 +       dst = atom_arg_shift[dst_align];
        SDEBUG(   dst: );
        atom_put_dst(ctx, arg, attr, dptr, dst, saved);
  }
 --
 1.5.6.3

From abf2bcf1318e0170bf1f891ab7e5a7acf64091d8 Mon Sep 17 00:00:00 2001
From: Alex Deucher alexdeuc...@gmail.com
Date: Fri, 9 Apr 2010 15:01:25 -0400
Subject: [PATCH] drm/radeon/kms: more atom parser fixes (v2)

shr/shl ops need the full dst rather than the pre-masked
version.  Fixes fdo bug 27478 and kernel bug 15738.

v2: remove some unsed vars, add comments

Signed-off-by: Alex Deucher alexdeuc...@gmail.com
Cc: stable sta...@kernel.org
---
 drivers/gpu/drm/radeon/atom.c |   10 ++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index 58845e0..a8bf500 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -907,11 +907,16 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg)
 	uint8_t attr = U8((*ptr)++), shift;
 	uint32_t saved, dst;
 	int dptr = *ptr;
+	uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  3];
 	SDEBUG(   dst: );
 	dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
+	/* op needs to full dst value */
+	dst = saved;
 	shift = atom_get_src(ctx, attr, ptr);
 	SDEBUG(   shift: %d\n, shift);
 	dst = shift;
+	dst = atom_arg_mask[dst_align];
+	dst = atom_arg_shift[dst_align];
 	SDEBUG(   dst: );
 	atom_put_dst(ctx, arg, attr, dptr, dst, saved);
 }
@@ -921,11 +926,16 @@ static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg)
 	uint8_t attr = U8((*ptr)++), shift;
 	uint32_t saved, dst;
 	int dptr = *ptr;
+	uint32_t dst_align = atom_dst_to_src[(attr  3)  7][(attr  6)  3];
 	SDEBUG(   dst: );
 	dst = atom_get_dst(ctx, arg, attr, ptr, saved, 1);
+	/* op needs to full dst value */
+	dst = saved;
 	shift = atom_get_src(ctx, attr, ptr);
 	SDEBUG(   shift: %d\n, shift);
 	dst = shift;
+	dst = atom_arg_mask[dst_align];
+	dst = atom_arg_shift[dst_align];
 	SDEBUG(   dst: );
 	atom_put_dst(ctx, arg, attr, dptr, dst, saved);
 }
-- 
1.5.6.3

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27569] New: Radeon KMS panic with certain kernel config.

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27569

   Summary: Radeon KMS panic with certain kernel config.
   Product: DRI
   Version: unspecified
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: DRM/Radeon
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: nbow...@draconx.ca


With a kernel built with CONFIG_AGP=y, CONFIG_AGP_INTEL=m and
CONFIG_DRM_RADEON=y, enabling radeon KMS (either by the config option or
radeon.modeset=1 boot parameter) results in an immediate kernel panic. 
Modesetting works fine when those options are all set to 'y' or all set to 'm'.

Both Linus' git and 2.6.33 are affected.  Full boot log follows.

Linux version 2.6.34-rc3-00406-gcf90bfe (r...@ulna.ellipticsemi.com) (gcc
version 4.3.0 20080428 (Red Hat 4.3.0-8) (GCC) ) #56 SMP PREEMPT Fri Apr 9
14:28:59 EDT 2010
BIOS-provided physical RAM map:
 BIOS-e820:  - 0009fc00 (usable)
 BIOS-e820: 0009fc00 - 000a (reserved)
 BIOS-e820: 000e - 0010 (reserved)
 BIOS-e820: 0010 - 1ff4 (usable)
 BIOS-e820: 1ff4 - 1ff5 (ACPI data)
 BIOS-e820: 1ff5 - 2000 (ACPI NVS)
Notice: NX (Execute Disable) protection missing in CPU or disabled in BIOS!
DMI 2.3 present.
last_pfn = 0x1ff40 max_arch_pfn = 0x10
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
init_memory_mapping: -1ff4
RAMDISK: 1fbfc000 - 1ff3
ACPI: RSDP 000f70e0 00014 (v00 ACPIAM)
ACPI: RSDT 1ff4 00030 (v01 INTEL  D845EPT2 20020920 MSFT 0097)
ACPI: FACP 1ff40200 00081 (v02 INTEL  D845EPT2 20020920 MSFT 0097)
ACPI: DSDT 1ff40400 0420A (v01 INTEL  D845EPT2 010A MSFT 010D)
ACPI: FACS 1ff5 00040
ACPI: APIC 1ff40300 00068 (v01 INTEL  D845EPT2 20020920 MSFT 0097)
ACPI: ASF! 1ff44610 00084 (v16 AMIASF I845GASF 0001 MSFT 010D)
511MB LOWMEM available.
  mapped low ram: 0 - 1ff4
  low ram: 0 - 1ff4
Zone PFN ranges:
  DMA  0x0001 - 0x1000
  Normal   0x1000 - 0x0001ff40
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
0: 0x0001 - 0x009f
0: 0x0100 - 0x0001ff40
Using APIC driver default
ACPI: PM-Timer IO Port: 0x408
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x81] disabled)
ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
ACPI: IOAPIC (id[0x01] address[0xfec0] gsi_base[0])
IOAPIC[0]: apic_id 1, version 32, address 0xfec0, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
Using ACPI (MADT) for SMP configuration information
SMP: Allowing 2 CPUs, 1 hotplug CPUs
Allocating PCI resources starting at 2000 (gap: 2000:e000)
setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:2 nr_node_ids:1
PERCPU: Embedded 16 pages/cpu @c200 s40980 r0 d24556 u2097152
pcpu-alloc: s40980 r0 d24556 u2097152 alloc=1*4194304
pcpu-alloc: [0] 0 1 
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129759
Kernel command line: ro root=/dev/VolGroup00/LogVol00 rhgb
console=ttyS0,115200n8 radeon.modeset=1
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
Subtract (34 early reservations)
  #1 [001000 - 002000]   EX TRAMPOLINE
  #2 [000100 - 00019cbd6c]   TEXT DATA BSS
  #3 [001fbfc000 - 001ff3] RAMDISK
  #4 [09fc00 - 10]   BIOS reserved
  #5 [00019cc000 - 00019d3110] BRK
  #6 [002000 - 003000]  TRAMPOLINE
  #7 [007000 - 008000] PGTABLE
  #8 [00019d3180 - 0001dd3180] BOOTMEM
  #9 [00019cbd80 - 00019cbd84] BOOTMEM
  #10 [0001dd3180 - 0001dd33c0] BOOTMEM
  #11 [00019cbe00 - 00019cbe30] BOOTMEM
  #12 [0001dd3400 - 0001dd7c00] BOOTMEM
  #13 [00019cbe80 - 00019cbea7] BOOTMEM
  #14 [00019cbf00 - 00019cbfc4] BOOTMEM
  #15 [0001dd7c00 - 0001dd7c40] BOOTMEM
  #16 [0001dd7c80 - 0001dd7cc0] BOOTMEM
  #17 [0001dd7d00 - 0001dd7d40] BOOTMEM
  #18 [0001dd7d80 - 0001dd7dc0] BOOTMEM
  #19 [0001dd7e00 - 0001dd7e40] BOOTMEM
  #20 [0001dd7e80 - 0001dd7ec0] BOOTMEM
  #21 [0001dd7f00 - 0001dd7f4e] BOOTMEM
  #22 [0001dd7f80 - 0001dd7fce] BOOTMEM
  #23 [000200 - 000201] BOOTMEM
  #24 [000220 - 000221] BOOTMEM
  #25 [0001dda000 - 0001dda004] BOOTMEM
  #26 [0001dda080 - 0001dda084] BOOTMEM
  #27 [0001dda100 - 0001dda108] 

[Bug 27522] rendering of large vtk datasets very slow

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27522

--- Comment #2 from Paulo César Pereira de Andrade p...@mandriva.com.br 
2010-04-09 12:29:09 PDT ---
(In reply to comment #1)
 (In reply to comment #1)
  Using oprofile, and starting the application, loading a project and clicking
  the close button shows that most of the time is spent in kernel mode 
  (70%ish,
  and I believe should be in the drm code, what would explain even the mouse
  pointer almost locked).
 
 Please attach profile data. If you use sysprof 1.1.x (or a Git snapshot) with 
 a
 recent kernel, you should get profiling information about the kernel as well.

I just made an alternate test, that was to enable radeon kms, and now the
performance is good, not as fast as when compared with a computer with an i965,
but pretty usable.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27521] corrupted rendering with vbo + kms + rv515 (hits Blender 2.50!)

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27521

Maciej Cencora m.cenc...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #4 from Maciej Cencora m.cenc...@gmail.com 2010-04-09 12:29:30 
PDT ---
I've pushed a fix on mesa_7_7_branch
(a5489649593427e47b039ad0d4a98cbb4e547f69).
Thanks for the report and testcase!

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 5/6] drm/i915: don't use -driver_private anymore

2010-04-09 Thread Daniel Vetter
Thanks to the to_intel_bo helper, this change is rather trivial.

Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 drivers/gpu/drm/i915/i915_drv.h |2 +-
 drivers/gpu/drm/i915/i915_gem.c |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 3d59e21..c5c7ce0 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -732,7 +732,7 @@ struct drm_i915_gem_object {
atomic_t pending_flip;
 };
 
-#define to_intel_bo(x) ((struct drm_i915_gem_object *) (x)-driver_private)
+#define to_intel_bo(x) container_of(x, struct drm_i915_gem_object, base)
 
 /**
  * Request queue structure.
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 23c67e0..7c8c01b 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4440,7 +4440,7 @@ struct drm_gem_object * i915_gem_alloc_object(struct 
drm_device *dev,
 
obj-agp_type = AGP_USER_MEMORY;
 
-   obj-base.driver_private = obj;
+   obj-base.driver_private = NULL;
obj-obj = obj-base;
obj-fence_reg = I915_FENCE_REG_NONE;
INIT_LIST_HEAD(obj-list);
-- 
1.6.6.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 0/6] make gem_object embedable and convert i915 driver

2010-04-09 Thread Daniel Vetter
Hi all,

As promised here's my patch series to make struct drm_gem_object embedable.
Also converts drm/i915 as a proof of concept.

I've already looked at the radeon and nouveau modules and a straightforward
replament of the gem_object pointer looks simple. But I think embedding it
into the ttm_bo is better long-term. Stuff like duplicated ref-counting
between the ttm object and the gem one just doesn't make too much sense.

Tested on my i945GM. The changes to radeon and nouveau in patch 2 are only
compile-tested, but the identical change to the i915 survived testing.

Comments on the patches and my future plans highly welcome.

Yours, Daniel

Daniel Vetter (6):
  drm: extract drm_gem_object_init
  drm: free core gem object from driver callbacks
  drm/i915: introduce i915_gem_alloc_object
  drm/i915: embed the gem object into drm_i915_gem_object
  drm/i915: don't use -driver_private anymore
  drm/i915: drop pointer to drm_gem_object

 drivers/gpu/drm/drm_gem.c |   49 +---
 drivers/gpu/drm/i915/i915_debugfs.c   |   15 +++---
 drivers/gpu/drm/i915/i915_drv.h   |6 ++-
 drivers/gpu/drm/i915/i915_gem.c   |   80 ++---
 drivers/gpu/drm/i915/i915_gem_debug.c |2 +-
 drivers/gpu/drm/i915/i915_irq.c   |4 +-
 drivers/gpu/drm/i915/intel_display.c  |2 +-
 drivers/gpu/drm/i915/intel_fb.c   |2 +-
 drivers/gpu/drm/i915/intel_overlay.c  |8 ++--
 drivers/gpu/drm/nouveau/nouveau_gem.c |3 +
 drivers/gpu/drm/radeon/radeon_gem.c   |3 +
 include/drm/drmP.h|3 +
 12 files changed, 105 insertions(+), 72 deletions(-)


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH 4/6] drm/i915: embed the gem object into drm_i915_gem_object

2010-04-09 Thread Daniel Vetter
Just embed it and adjust the pointers, No other changes (that's
for later patches).

Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 drivers/gpu/drm/i915/i915_drv.h |1 +
 drivers/gpu/drm/i915/i915_gem.c |   58 +++---
 2 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 3d4e135..3d59e21 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -632,6 +632,7 @@ typedef struct drm_i915_private {
 
 /** driver private structure attached to each drm_gem_object */
 struct drm_i915_gem_object {
+   struct drm_gem_object base;
struct drm_gem_object *obj;
 
/** Current space allocated to this object in the GTT, if any. */
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 92dd522..23c67e0 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4424,37 +4424,38 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void 
*data,
 struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev,
  size_t size)
 {
-   return drm_gem_object_alloc(dev, size);
-}
+   struct drm_i915_gem_object *obj;
 
-int i915_gem_init_object(struct drm_gem_object *obj)
-{
-   struct drm_i915_gem_object *obj_priv;
+   obj = kzalloc(sizeof(*obj), GFP_KERNEL);
+   if (obj == NULL)
+   return NULL;
 
-   obj_priv = kzalloc(sizeof(*obj_priv), GFP_KERNEL);
-   if (obj_priv == NULL)
-   return -ENOMEM;
+   if (drm_gem_object_init(dev, obj-base, size) != 0) {
+   kfree(obj);
+   return NULL;
+   }
 
-   /*
-* We've just allocated pages from the kernel,
-* so they've just been written by the CPU with
-* zeros. They'll need to be clflushed before we
-* use them with the GPU.
-*/
-   obj-write_domain = I915_GEM_DOMAIN_CPU;
-   obj-read_domains = I915_GEM_DOMAIN_CPU;
+   obj-base.write_domain = I915_GEM_DOMAIN_CPU;
+   obj-base.read_domains = I915_GEM_DOMAIN_CPU;
 
-   obj_priv-agp_type = AGP_USER_MEMORY;
+   obj-agp_type = AGP_USER_MEMORY;
 
-   obj-driver_private = obj_priv;
-   obj_priv-obj = obj;
-   obj_priv-fence_reg = I915_FENCE_REG_NONE;
-   INIT_LIST_HEAD(obj_priv-list);
-   INIT_LIST_HEAD(obj_priv-gpu_write_list);
-   INIT_LIST_HEAD(obj_priv-fence_list);
-   obj_priv-madv = I915_MADV_WILLNEED;
+   obj-base.driver_private = obj;
+   obj-obj = obj-base;
+   obj-fence_reg = I915_FENCE_REG_NONE;
+   INIT_LIST_HEAD(obj-list);
+   INIT_LIST_HEAD(obj-gpu_write_list);
+   INIT_LIST_HEAD(obj-fence_list);
+   obj-madv = I915_MADV_WILLNEED;
 
-   trace_i915_gem_object_create(obj);
+   trace_i915_gem_object_create(obj-base);
+
+   return obj-base;
+}
+
+int i915_gem_init_object(struct drm_gem_object *obj)
+{
+   BUG();
 
return 0;
 }
@@ -4477,12 +4478,11 @@ void i915_gem_free_object(struct drm_gem_object *obj)
if (obj_priv-mmap_offset)
i915_gem_free_mmap_offset(obj);
 
+   drm_gem_object_release(obj);
+
kfree(obj_priv-page_cpu_valid);
kfree(obj_priv-bit_17);
-   kfree(obj-driver_private);
-
-   drm_gem_object_release(obj);
-   kfree(obj);
+   kfree(obj_priv);
 }
 
 /** Unbinds all inactive objects. */
-- 
1.6.6.1


--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27443] radeonFreeTexImageData: Assertion `!image-base.Data' failed when running Ogre3D samples

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27443

--- Comment #2 from Laurent carlier lordhea...@gmail.com 2010-04-09 12:43:12 
PDT ---
Here is a backtrace of the problem:
[lo...@archmain g3dtest]$ gdb gbx3
GNU gdb (GDB) 7.1
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as x86_64-unknown-linux-gnu.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from /usr/local/bin/gbx3...done.
(gdb) run
Starting program: /usr/local/bin/gbx3 
[Thread debugging using libthread_db enabled]
GambasFSArchive::find:*:0:0
GambasFSArchive::findFileInfo:*.program::0:0
GambasFSArchive::findFileInfo:*.material::0:0
GambasFSArchive::findFileInfo:*.particle::0:0
GambasFSArchive::findFileInfo:*.compositor::0:0
GambasFSArchive::findFileInfo:*.os::0:0
GambasFSArchive::findFileInfo:*.fontdef::0:0
GambasFSArchive::findFileInfo:*.overlay::0:0
GambasFSArchive::exists:GLX_icon.png - 0
GambasFSArchive::exists:GLX_icon.png - 0
Mesa: Mesa 7.9-devel DEBUG build Apr  9 2010 21:31:08
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn
compression/decompression unavailable
Mesa: Initializing x86-64 optimizations
Mesa: 3Dnow! detected
[New Thread 0x700b9710 (LWP 23592)]
[New Thread 0x7fffef8b8710 (LWP 23593)]
[New Thread 0x7fffe70b7710 (LWP 23594)]
[New Thread 0x7fffef0b7710 (LWP 23595)]
[Thread 0x700b9710 (LWP 23592) exited]
[Thread 0x7fffef0b7710 (LWP 23595) exited]
[Thread 0x7fffe70b7710 (LWP 23594) exited]
[Thread 0x7fffef8b8710 (LWP 23593) exited]
gbx3: radeon_texture.c :93 : radeonFreeTexImageData:  L'assertion «
!image-base.Data » a échoué.

Program received signal SIGABRT, Aborted.
0x77210fd5 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x77210fd5 in raise () from /lib/libc.so.6
#1  0x772123f0 in abort () from /lib/libc.so.6
#2  0x7720a081 in __assert_fail () from /lib/libc.so.6
#3  0x70cb7b01 in radeonFreeTexImageData (ctx=value optimized out,
timage=0xa68130) at radeon_texture.c:93
#4  0x70d26de2 in _mesa_delete_texture_image (ctx=0x5c25,
texImage=0xa68130) at main/teximage.c:487
#5  0x70d2e961 in _mesa_delete_texture_object (ctx=0x6d6d10,
texObj=0xa67850) at main/texobj.c:201
#6  0x70d2df73 in _mesa_reference_texobj (ptr=0x7fffdf08, tex=0x0)
at main/texobj.c:345
#7  0x70d2f5c5 in _mesa_DeleteTextures (n=1, textures=value optimized
out) at main/texobj.c:932
#8  0x767c70f9 in Ogre::Texture::freeInternalResources
(this=0x77ef8c78) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreTexture.cpp:349
#9  0x766d0188 in Ogre::Resource::unload (this=0x77ef8c78) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResource.cpp:307
#10 0x726adecd in ~GLTexture (this=0x5c25, __in_chrg=value optimized
out) at
/home/lordh/archbuild/ogre/src/ogre/RenderSystems/GL/src/OgreGLTexture.cpp:75
#11 0x765217bf in Ogre::SharedPtrOgre::Resource::destroy
(this=0x7336ab88) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/include/OgreSharedPtr.h:229
#12 0x765222d9 in Ogre::SharedPtrOgre::Resource::release
(this=0x7336ab88, __in_chrg=value optimized out) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/include/OgreSharedPtr.h:215
#13 ~SharedPtr (this=0x7336ab88, __in_chrg=value optimized out) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/include/OgreSharedPtr.h:152
#14 0x766e2e86 in std::listOgre::SharedPtrOgre::Resource,
Ogre::STLAllocatorOgre::SharedPtrOgre::Resource,
Ogre::CategorisedAllocPolicy(Ogre::MemoryCategory)0 
::erase(std::_List_iteratorOgre::SharedPtrOgre::Resource ) () from
/usr/lib/libOgreMain_d.so.1.7.0
#15 0x766d603b in
Ogre::ResourceGroupManager::_notifyAllResourcesRemoved (this=value optimized
out, manager=0x77ee76e8)
at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResourceGroupManager.cpp:1228
#16 0x766e618f in Ogre::ResourceManager::removeAll
(this=0x77ee76e8) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResourceManager.cpp:365
#17 0x766d5195 in Ogre::ResourceGroupManager::shutdownAll (this=value
optimized out) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreResourceGroupManager.cpp:1495
#18 0x766f4bac in Ogre::Root::shutdown (this=0x77ed38d8) at
/home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreRoot.cpp:1003
#19 0x766f5fa4 in ~Root (this=0x5c25, __in_chrg=value optimized out)
at /home/lordh/archbuild/ogre/src/ogre/OgreMain/src/OgreRoot.cpp:288
#20 0x76dbfac6 in std::auto_ptrOgre::Root::reset (this=0xd0,
__p=0x0) at
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/../../../../include/c++/4.4.3/backward/auto_ptr.h:242
#21 0x76dbeb6e in ~gapplication 

Re: 2.6.34-rc3-git8: Reported regressions 2.6.32 - 2.6.33

2010-04-09 Thread Rafael J. Wysocki
On Friday 09 April 2010, Gertjan van Wingerde wrote:
 On 04/09/10 00:54, Rafael J. Wysocki wrote:
  
  Bug-Entry   : http://bugzilla.kernel.org/show_bug.cgi?id=15699
  Subject : rt2500usb driver cannot remain connected
  Submitter   :  a...@gentoo.org
  Date: 2010-04-05 19:30 (4 days old)
  Handled-By  : Ivo van Doorn ivdo...@gmail.com
  
 
 This one ought to be fixed by commit 9e76ad2a27f592c1390248867391880c7efe78b3
 in Linus' tree.

Thanks, closing.

Rafael

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


List moved to freedesktop.org

2010-04-09 Thread Jesse Barnes
Thanks to Tollef, we've just finished moving this list over to
freedesktop.org.  This should give us faster delivery and a better
archive viewer.

The new list address is dri-de...@lists.freedesktop.org.  Old
subscribers have automatically been subscribed to the new list,
preserving existing subscription options related to delivery and
digests.

Have fun using the new list!

-- 
Jesse Barnes, Intel Open Source Technology Center

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27570] New: r300g incorrectly claims npot support

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27570

   Summary: r300g incorrectly claims npot support
   Product: Mesa
   Version: git
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/r300
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: wixorp...@gmail.com


Created an attachment (id=34853)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34853)
the test program (compile with -std=c99)

The r300g driver on rv515 claims GL_ARB_texture_non_power_of_two support.
Suprisingly, such textures actually work if texture coordinates are (0,0),
(1,0), (1,1), (0,1). However if that's not the case, garbage is rendered. This
bug makes Blender 2.50 ui unusable. 

Attached are: test program, correct rendering (obtained by
LIBGL_ALWAYS_SOFTWARE=1) and r300g's rendering (the garbage pattern varies,
sometimes just white/black, sometimes all pixels are random).

driver is from git version, commit edb5253dfa0...
hardware is radeon x1300 (rv515)
kernel is vanilla 2.6.33.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27570] r300g incorrectly claims npot support

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27570

--- Comment #1 from Wiktor Janas wixorp...@gmail.com 2010-04-09 13:48:05 PDT 
---
Created an attachment (id=34854)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34854)
the correct rendering

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27570] r300g incorrectly claims npot support

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27570

--- Comment #2 from Wiktor Janas wixorp...@gmail.com 2010-04-09 13:48:27 PDT 
---
Created an attachment (id=34855)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34855)
the r300g's rendering

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27522] rendering of large vtk datasets very slow

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27522

--- Comment #3 from Paulo César Pereira de Andrade p...@mandriva.com.br 
2010-04-09 13:57:25 PDT ---
Created an attachment (id=34856)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34856)
% perf record invesalius; perf report 2 1 

  The file should give some good hint of what is wrong. It should be noted that
it takes some time to load the user interface, and then tell it to load the
proper project, so, the time percentage may not truly match what happened,
because there was significant delay before starting rendering.

  Also, I did not wait until it finished rendering, i.e. when the mouse starts
moving normally again, or it could give even worser idea of what may be wrong.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27570] r300g incorrectly claims npot support

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27570

--- Comment #3 from Marek Olšák mar...@gmail.com 2010-04-09 14:16:25 PDT ---
The NPOT textures are mandatory in GL2 and if the driver doesn't claim their
support, Mesa will report OpenGL 1.5 only, pretty much killing the main selling
point of r300g.

I plan to implement a fallback soon.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27569] Radeon KMS panic with certain kernel config.

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27569

--- Comment #1 from Dave Airlie airl...@freedesktop.org 2010-04-09 15:55:27 
PDT ---
Not sure how you expect this to work since we need AGP working.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27569] Radeon KMS panic with certain kernel config.

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27569

--- Comment #2 from Nick Bowler nbow...@draconx.ca 2010-04-09 16:49:45 PDT ---
I don't expect it to work.

I do expect the driver to not oops, however.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27571] New: Regression: r600 CS checker rejects GL_DEPTH_TEST w/o depth buffer.

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27571

   Summary: Regression: r600 CS checker rejects GL_DEPTH_TEST w/o
depth buffer.
   Product: DRI
   Version: unspecified
  Platform: Other
OS/Version: All
Status: NEW
  Severity: major
  Priority: medium
 Component: DRM/Radeon
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: nbow...@draconx.ca


Created an attachment (id=34858)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34858)
Test case.

The command stream checker recently added to the radeon driver kills
programs which render to a target which does not have a depth buffer
whilst GL_DEPTH_TEST is enabled.  Instead of simply not performing
depth buffer operations, the result is program termination and some
rather cryptic error messages:

  drmRadeonCmdBuffer: -22. Kernel failed to parse or rejected command
  stream.  See dmesg for more info.

and in dmesg:
  radeon :03:00.0: z/stencil with no depth buffer
  radeon :03:00.0: r600_packet3_check:1109 invalid cmd stream 815
  [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !

I first noticed this when a program that works using 2.6.33 died
rendering to a FBO, but it is trivially reproducible without using
anything fancy.  A test case is attached which works normally with
either Linux 2.6.33, the software rasterizer, or the intel driver.
The failure is reproducible with both mesa 7.8.1 and git master.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27571] Regression: r600 CS checker rejects GL_DEPTH_TEST w/o depth buffer.

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27571

--- Comment #1 from Nick Bowler nbow...@draconx.ca 2010-04-09 21:58:27 PDT ---
Created an attachment (id=34859)
 -- (https://bugs.freedesktop.org/attachment.cgi?id=34859)
Full kernel log.

Just in case it's needed.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 27521] corrupted rendering with vbo + kms + rv515 (hits Blender 2.50!)

2010-04-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=27521

--- Comment #5 from Rafał Miłecki zaj...@gmail.com 2010-04-09 22:41:12 PDT ---
(In reply to comment #4)
 I've pushed a fix on mesa_7_7_branch
 (a5489649593427e47b039ad0d4a98cbb4e547f69).
 Thanks for the report and testcase!

Thanks for fix! ;)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
--
Download Intel#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel