Re: [PATCH] vga_switcheroo: initial implementation (v11)

2010-02-26 Thread Rafał Miłecki
2010/2/26 Dave Airlie airl...@gmail.com:
 v11: fix bug in resuming Intel for 2nd time.

NACK. You totally ignored my previous audio comments.

-- 
Rafał

--
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/3] drm/radeon/kms: little audio stuff cleaning

2010-02-26 Thread Rafał Miłecki
This patchset is drm-next based, tried to clean all our mistakes :)

Rafał Miłecki (3):
  Revert drm/radeon/kms: disable HDMI audio for now on rv710/rv730
  drm/radeon/kms: do not disable audio engine twice
  drm/radeon/kms: do not preset audio stuff and start timer when not
using audio

 drivers/gpu/drm/radeon/r600_audio.c |9 -
 1 files changed, 4 insertions(+), 5 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 1/3] Revert drm/radeon/kms: disable HDMI audio for now on rv710/rv730

2010-02-26 Thread Rafał Miłecki
This commit disabled audio on RV710 and RV740 only, leaving RV770 and RV730.
The order is: CHIP_RV770  CHIP_RV730  CHIP_RV710  CHIP_RV740.

It is not needed anway, as we do not even try to enable audio on RV770 and
newer. We call initializing function in r600.c only, not in rv770.c.

If there is something causing green tinges, it's HDMI mode setting for encoder
and I will try to debug that.

Signed-off-by: Rafał Miłecki zaj...@gmail.com
---
 drivers/gpu/drm/radeon/r600_audio.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_audio.c 
b/drivers/gpu/drm/radeon/r600_audio.c
index 387abaa..a8366ce 100644
--- a/drivers/gpu/drm/radeon/r600_audio.c
+++ b/drivers/gpu/drm/radeon/r600_audio.c
@@ -35,7 +35,7 @@
  */
 static int r600_audio_chipset_supported(struct radeon_device *rdev)
 {
-   return (rdev-family = CHIP_R600  rdev-family  CHIP_RV710)
+   return rdev-family = CHIP_R600
|| rdev-family == CHIP_RS600
|| rdev-family == CHIP_RS690
|| rdev-family == CHIP_RS740;
-- 
1.6.4.2


--
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: suspend and resume audio stuff

2010-02-26 Thread Rafał Miłecki
Fixes FDO bug #26214

Signed-off-by: Rafał Miłecki zaj...@gmail.com
---
 drivers/gpu/drm/radeon/r600.c   |8 
 drivers/gpu/drm/radeon/r600_audio.c |3 +--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index d279089..76d0cdb 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -1944,6 +1944,13 @@ int r600_resume(struct radeon_device *rdev)
DRM_ERROR(radeon: failled testing IB (%d).\n, r);
return r;
}
+
+   r = r600_audio_init(rdev);
+   if (r) {
+   DRM_ERROR(radeon: audio resume failed\n);
+   return r;
+   }
+
return r;
 }
 
@@ -1951,6 +1958,7 @@ int r600_suspend(struct radeon_device *rdev)
 {
int r;
 
+   r600_audio_fini(rdev);
/* FIXME: we should wait for ring to be empty */
r600_cp_stop(rdev);
rdev-cp.ready = false;
diff --git a/drivers/gpu/drm/radeon/r600_audio.c 
b/drivers/gpu/drm/radeon/r600_audio.c
index 99e2c38..e90da2e 100644
--- a/drivers/gpu/drm/radeon/r600_audio.c
+++ b/drivers/gpu/drm/radeon/r600_audio.c
@@ -261,7 +261,6 @@ void r600_audio_fini(struct radeon_device *rdev)
if (!r600_audio_chipset_supported(rdev))
return;
 
-   WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x8100);
-
del_timer(rdev-audio_timer);
+   WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x8100);
 }
-- 
1.6.4.2


--
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/3] drm/radeon/kms: do not preset audio stuff and start timer when not using audio

2010-02-26 Thread Rafał Miłecki
Signed-off-by: Rafał Miłecki zaj...@gmail.com
---
 drivers/gpu/drm/radeon/r600_audio.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_audio.c 
b/drivers/gpu/drm/radeon/r600_audio.c
index 2dd8891..db92801 100644
--- a/drivers/gpu/drm/radeon/r600_audio.c
+++ b/drivers/gpu/drm/radeon/r600_audio.c
@@ -160,10 +160,10 @@ static void r600_audio_engine_enable(struct radeon_device 
*rdev, bool enable)
  */
 int r600_audio_init(struct radeon_device *rdev)
 {
-   if (!r600_audio_chipset_supported(rdev))
+   if (!radeon_audio || !r600_audio_chipset_supported(rdev))
return 0;
 
-   r600_audio_engine_enable(rdev, radeon_audio);
+   r600_audio_engine_enable(rdev, true);
 
rdev-audio_channels = -1;
rdev-audio_rate = -1;
@@ -266,7 +266,7 @@ void r600_audio_set_clock(struct drm_encoder *encoder, int 
clock)
  */
 void r600_audio_fini(struct radeon_device *rdev)
 {
-   if (!r600_audio_chipset_supported(rdev))
+   if (!radeon_audio || !r600_audio_chipset_supported(rdev))
return;
 
del_timer(rdev-audio_timer);
-- 
1.6.4.2


--
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/3] drm/radeon/kms: do not disable audio engine twice

2010-02-26 Thread Rafał Miłecki
Signed-off-by: Rafał Miłecki zaj...@gmail.com
---
That's result of taking related patches from 2 branches
---
 drivers/gpu/drm/radeon/r600_audio.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_audio.c 
b/drivers/gpu/drm/radeon/r600_audio.c
index a8366ce..2dd8891 100644
--- a/drivers/gpu/drm/radeon/r600_audio.c
+++ b/drivers/gpu/drm/radeon/r600_audio.c
@@ -270,7 +270,6 @@ void r600_audio_fini(struct radeon_device *rdev)
return;
 
del_timer(rdev-audio_timer);
-   WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x8100);
 
r600_audio_engine_enable(rdev, false);
 }
-- 
1.6.4.2


--
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: suspend and resume audio stuff

2010-02-26 Thread Rafał Miłecki
W dniu 26 lutego 2010 09:44 użytkownik Rafał Miłecki zaj...@gmail.com napisał:
 Fixes FDO bug #26214

Whoops, I dumped patches to already existing directory. Ignore this
one please. Sorry.

-- 
Rafał

--
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 2/2] vga_switcheroo: initial implementation (v8)

2010-02-26 Thread Dave Airlie
Oh I should probably have dropped all the audio bits, I didn't even
see this reply
before I updated to v11.

The r600 audio code is a bit of disaster area hopefully we can clean it up, like
the timer was firing after the device was suspended.

I'll repost with all that r600 audio ripped out and you can fix the mess.

 Don't mess with r600_audio_* there. You call if for all chipsets which
 is not needed and break nice SR layout, which is chipset specific.

 I guess you needed that because you didn't work on branch containing my patch:
 http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commitdiff;h=38fd2c6ff526e6a59edfa8e08f6f0724646784c4
 (you commited it to drm-linus)

This patch is now based on Linus tree, but yeah the original version
predates your
patches.

 -int radeon_audio = 1;
 +int radeon_audio = 0;

 Why?! What for we disable this feature by default?! If you see some
 reason for that, explain it to others please. I can change my mind,
 but for now I don't like this. It makes audio an option from just
 working-out-of-box.


Oversights, the audio was just broken in the presence of suspend/resume when
I wrote it.

Dave.

--
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 2/2] vga_switcheroo: initial implementation (v8)

2010-02-26 Thread Rafał Miłecki
W dniu 26 lutego 2010 09:50 użytkownik Dave Airlie airl...@gmail.com napisał:
 Oh I should probably have dropped all the audio bits, I didn't even
 see this reply
 before I updated to v11.

 The r600 audio code is a bit of disaster area hopefully we can clean it up, 
 like
 the timer was firing after the device was suspended.

 I'll repost with all that r600 audio ripped out and you can fix the mess.

I already did, 3 minutes ago ;)

-- 
Rafał

--
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 26438] [CS checker code][r6xx][2.6.33-rc6 fc76be4 (git snapshot) + drm-radeon-next] playing Second Life cause GPU lockup.

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26438


Fabio Pedretti fabio@libero.it changed:

   What|Removed |Added

 CC||fabio@libero.it
 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #8 from Fabio Pedretti fabio@libero.it  2010-02-26 01:17:03 
PST ---
Patch applied in 2.6.33.


-- 
Configure bugmail: http://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 25506] radeon kms causes 33 second boot delay on kernel v2.6.32

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25506


Fabio Pedretti fabio@libero.it changed:

   What|Removed |Added

 CC||fabio@libero.it
 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #18 from Fabio Pedretti fabio@libero.it  2010-02-26 01:17:51 
PST ---
Fixed in 2.6.33


-- 
Configure bugmail: http://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


Re: [PATCH][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up

2010-02-26 Thread Rafał Miłecki
Forwarding to ppl I could often notice in git log time.h


-- Wiadomość przekazana dalej --
From: Rafał Miłecki zaj...@gmail.com
Date: 21 lutego 2010 15:10
Subject: [PATCH][RFC] time: add wait_interruptible_timeout macro to
sleep (w. timeout) until wake_up
To: Linux Kernel Mailing List linux-ker...@vger.kernel.org,
dri-devel@lists.sourceforge.net
CC: Rafał Miłecki zaj...@gmail.com


Signed-off-by: Rafał Miłecki zaj...@gmail.com
---
We try to implement some PM in radeon KMS and we need to sync with VLBANK for
reclocking engine/memory. The easiest and cleanest way seems to be sleeping in
timer handler just before reclocking. Then our IRQ handler calls wake_up and we
continue reclocking.

As you see our sleeping is condition-less, we just wait for waking up queue.

We hope this waking will happen from IRQ handler, but for less-happy case we
also use some timeout (this will probably cause some single corruption, but
we can live with it).

Following macro is soemthing that seems to work fine for us, but instead
introducing this to radeon KMS only, I'd like to propose adding this to whole
wait.h. Do you this it's something we should place there? Can someone take this
patch for me? Or maybe you find this rather useless and we should keep this
marco locally?
---
 include/linux/wait.h |   25 +
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/include/linux/wait.h b/include/linux/wait.h
index a48e16b..998475b 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -332,6 +332,31 @@ do {
                         \
       __ret;                                                          \
 })

+/**
+ * wait_interruptible_timeout - sleep until a waitqueue is woken up
+ * @wq: the waitqueue to wait on
+ * @timeout: timeout, in jiffies
+ *
+ * The process is put to sleep (TASK_INTERRUPTIBLE) until the waitqueue
+ * @wq is woken up. It can be done manually with wake_up or will happen
+ * if timeout elapses.
+ *
+ * The function returns 0 if the @timeout elapsed, remaining jiffies
+ * if workqueue was waken up earlier.
+ */
+#define wait_interruptible_timeout(wq, timeout)
         \
+({                                                                     \
+       long __ret = timeout;                                           \
+                                                                       \
+       DEFINE_WAIT(__wait);                                            \
+       prepare_to_wait(wq, __wait, TASK_INTERRUPTIBLE);              \
+       if (!signal_pending(current))                                   \
+               __ret = schedule_timeout(__ret);                        \
+       finish_wait(wq, __wait);                                      \
+                                                                       \
+       __ret;                                                          \
+})
+
 #define __wait_event_interruptible_exclusive(wq, condition, ret)       \
 do {                                                                   \
       DEFINE_WAIT(__wait);                                            \
--
1.6.4.2
--
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 15276] latest git kernel: general protection fault: 0000 [#1]

2010-02-26 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=15276





--- Comment #47 from Andreas Wallberg andreas.wallb...@gmail.com  2010-02-26 
10:39:08 ---
(In reply to comment #44)
 Well, first of all I haven't touched the ttm_tt patch yet.
 
 However, after upgrading userland mesa, libdrm, glproto and  xf86-video-ati to
 latest git from 20100217 to 20100222 I stopped having the crashes using the
 KWin Present Windows test case. Kernel is still 2.6.33-rc7. 
 
 To be clear: with version 20100222 and kernel 2.6.33-rc7 I can't reproduce the
 crashes using the Present Windows test case. The test case caused crashes with
 version 20100217 with the same kernel.

Interesting, my system is just as crash-prone as before, running 2.6.33 stable
and a graphics stack from 20100224.

-- 
Configure bugmail: http://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 26769] New: r600: wrong fragment shader input when using gl_fragCoord.

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26769

   Summary: r600: wrong fragment shader input when using
gl_fragCoord.
   Product: Mesa
   Version: git
  Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/R600
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: wielkie...@gmail.com


Created an attachment (id=33583)
 -- (http://bugs.freedesktop.org/attachment.cgi?id=33583)
Fragment shader to reproduce bug

Consider simple shader in attachment. It works as expected, samples texture
depending on input variable from vertex shader and puts texel as color.
Uncommenting first comment shouldn't change anything (gl_FragDepth just
defaults to gl_FragCoord.z), but it's not the case. In fact when I do so,
fp_texCoord is always vec2(0.0). Well, I'm not sure about that, but it gives
same results (e.g. all triangles are red, as is 0.0, 0.0 coordinate).

Note that using gl_FragCoord in *any* way (that is not optimized away) causes
this failure. For example uncommenting second comment gives same results.

I can include vertex shader (that is also simple, just multiplies matrix with
gl_Position and copies texCoord into fp_texCoord) and sample program, if that
matter.


-- 
Configure bugmail: http://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 26195] Green screen on HDMI with RV730

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26195





--- Comment #11 from Rafał Miłecki zaj...@gmail.com  2010-02-26 03:50:27 PST 
---
Created an attachment (id=33584)
 -- (http://bugs.freedesktop.org/attachment.cgi?id=33584)
fast debugging

Please apply this patch, recompile, reboot and provide dmesg output. It just
prints messages, does not fix anything.


-- 
Configure bugmail: http://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 26195] Green screen on HDMI with RV730

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26195





--- Comment #12 from Rafał Miłecki zaj...@gmail.com  2010-02-26 03:54:18 PST 
---
Created an attachment (id=33585)
 -- (http://bugs.freedesktop.org/attachment.cgi?id=33585)
do not set hdmi mode

After you test first patch and provide output, please apply this one. It can be
applied on top of previous one or on clean branch, it does not matter.

Does it workaround green screen problem? It is not supposed to fix audio, just
check reason.


-- 
Configure bugmail: http://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


Re: [PATCH][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up

2010-02-26 Thread Thomas Gleixner
On Fri, 26 Feb 2010, Rafał Miłecki wrote:

 Forwarding to ppl I could often notice in git log time.h

And how is this related to time.h ?
 
 
 -- Wiadomość przekazana dalej --
 From: Rafał Miłecki zaj...@gmail.com
 Date: 21 lutego 2010 15:10
 Subject: [PATCH][RFC] time: add wait_interruptible_timeout macro to
 sleep (w. timeout) until wake_up
 To: Linux Kernel Mailing List linux-ker...@vger.kernel.org,
 dri-devel@lists.sourceforge.net
 CC: Rafał Miłecki zaj...@gmail.com
 
 
 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
 We try to implement some PM in radeon KMS and we need to sync with VLBANK for
 reclocking engine/memory. The easiest and cleanest way seems to be sleeping in
 timer handler just before reclocking. Then our IRQ handler calls wake_up and 
 we

Sleeping in the timer handler ? In which context runs this timer handler ?

 continue reclocking.
 
 As you see our sleeping is condition-less, we just wait for waking up queue.

Your sleep is not condition-less at all. See below.
 
 We hope this waking will happen from IRQ handler, but for less-happy case we
 also use some timeout (this will probably cause some single corruption, but
 we can live with it).
 
 Following macro is soemthing that seems to work fine for us, but instead
 introducing this to radeon KMS only, I'd like to propose adding this to whole
 wait.h. Do you this it's something we should place there? Can someone take 
 this
 patch for me? Or maybe you find this rather useless and we should keep this
 marco locally?

You better delete it right away. It's broken and racy. 

If the interrupt happens right before you enqueue to the wake queue,
then you miss it. The old interruptible_sleep_on_timeout() was
replaced by the event wait functions which have a condition exaclty to
avoid that race.

And you have a condition: Did an interrupt happen?

Thanks,

tglx
--
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][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up

2010-02-26 Thread Rafał Miłecki
W dniu 26 lutego 2010 12:55 użytkownik Thomas Gleixner
t...@linutronix.de napisał:
 On Fri, 26 Feb 2010, Rafał Miłecki wrote:

 Forwarding to ppl I could often notice in git log time.h

 And how is this related to time.h ?

Ouch, time.h vs. wait.h. I'm sorry.


 -- Wiadomość przekazana dalej --
 From: Rafał Miłecki zaj...@gmail.com
 Date: 21 lutego 2010 15:10
 Subject: [PATCH][RFC] time: add wait_interruptible_timeout macro to
 sleep (w. timeout) until wake_up
 To: Linux Kernel Mailing List linux-ker...@vger.kernel.org,
 dri-devel@lists.sourceforge.net
 CC: Rafał Miłecki zaj...@gmail.com


 Signed-off-by: Rafał Miłecki zaj...@gmail.com
 ---
 We try to implement some PM in radeon KMS and we need to sync with VLBANK for
 reclocking engine/memory. The easiest and cleanest way seems to be sleeping 
 in
 timer handler just before reclocking. Then our IRQ handler calls wake_up and 
 we

 Sleeping in the timer handler ? In which context runs this timer handler ?

We have our struct delayed_work which we first init and then we use
queue_delayed_work to start this timer. So it's not real-real
timer as struct timer_list.

So this is actually delayed_work handler. Sorry (again) for my bad naming.

Anyway in this handler we just take decision about (down|up)clocking,
we wait for VBLANK (to avoid display corrupted picture) and right
after it happens, we reclock engine (plus memory in future).


 continue reclocking.

 As you see our sleeping is condition-less, we just wait for waking up queue.

 Your sleep is not condition-less at all. See below.

 We hope this waking will happen from IRQ handler, but for less-happy case we
 also use some timeout (this will probably cause some single corruption, but
 we can live with it).

 Following macro is soemthing that seems to work fine for us, but instead
 introducing this to radeon KMS only, I'd like to propose adding this to whole
 wait.h. Do you this it's something we should place there? Can someone take 
 this
 patch for me? Or maybe you find this rather useless and we should keep this
 marco locally?

 You better delete it right away. It's broken and racy.

 If the interrupt happens right before you enqueue to the wake queue,
 then you miss it. The old interruptible_sleep_on_timeout() was
 replaced by the event wait functions which have a condition exaclty to
 avoid that race.

Well, I'm completely fine with that. After taking decision about
reclocking I request hardware to start reporting VBLANK interrupts.
Then (without any hurry) I go into sleep and next VBLANK interrupt
wake me up. Right after waking up I reclock engine/memory and then
(without hurry) I tell hardware to stop reporting VBLANK interrupts.

I guess it can be AMD-GPU specific interrupts mechanism there, but
that's how it works. I can point responsible code in driver if you
wish.


 And you have a condition: Did an interrupt happen?

Yeah, I guess that's kind of condition. I meant that I don't use any
driver's variable as condition to stop sleeping.


Sorry again for my mistakes mentioned above.

-- 
Rafał

--
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: modetest + libkms, intel, vmwgfx

2010-02-26 Thread Peter Hanzel
Hello.

I have been success on VMWare 5.5.2 + official linux-2.6.33.
modetest -s 4...@6:800x600 works well.

But I have to add : drmModeDirtryFB(fd, fb_id, NULL, 0) after drmModeSetCrtc 
line.

The color squares are displayed, but in dmesg i still have 
WARN_ON(vmw_framebuffer_dmabuf_pin).
So it is moving the right way.

Bye

- Original Message - 
From: Peter Hanzel hanzelpe...@gmail.com
To: Kristian Høgsberg k...@bitplanet.net
Cc: dri-devel@lists.sourceforge.net
Sent: Monday, February 22, 2010 10:37 AM
Subject: Re: modetest + libkms, intel, vmwgfx


 Hello.

 I have made test\modetest\modetest.c to use libkms.
 I have tested it on intel gfx and also in VMWare with vmwgfx.
 With intel I was succesfull - but it needed patches to libkms (attached,
 especially with DRM_I915_GEM_SET_DOMAIN, otherwise you get result like
 attached picture).
 But with vmwgfx with same modetest.c it displays only blank screen, but 
 mode
 is changed.

 Regards.

 - Original Message - 
 From: Kristian Høgsberg k...@bitplanet.net
 To: Peter Hanzel hanzelpe...@gmail.com
 Cc: dri-devel@lists.sourceforge.net
 Sent: Tuesday, February 09, 2010 3:14 PM
 Subject: Re: vmwgfx + VMWare 7.0 - libdrm modetest.c


 On Tue, Feb 9, 2010 at 8:05 AM, Peter Hanzel hanzelpe...@gmail.com
 wrote:
 Hello.

 I have a question about libdrm/libkms and test/modetest/modetest.c.
 I am now working with vmwgfx + VMWare 7.0, where vmwgfx had correctly
 initialized framebuffer and also now using fbcon.
 Now I want to test it woth modetest.c
 This program is only for intel so i recoded it to use libkms functions.

 Could you send the changes to make modetest.c use libkms as a patch?
 It's a good idea.

 cheers,
 Kristian

 


--
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: fence cleanup + more reliable GPU lockup detection

2010-02-26 Thread Jerome Glisse
This patch cleanup the fence code, it drops the timeout field of
fence as the time to complete each IB is unpredictable and shouldn't
be bound.

The fence cleanup lead to GPU lockup detection improvement, this
patch introduce a callback, allowing to do asic specific test for
lockup detection. In this patch the CP is use as a first indicator
of GPU lockup. If CP doesn't make progress during 1second we assume
we are facing a GPU lockup.

To avoid overhead of testing GPU lockup frequently due to fence
taking time to be signaled we query the lockup callback every
100msec. There is plenty code comment explaining the design  choise
inside the code.

This have been tested mostly on R3XX/R5XX hw, in normal running
destkop (compiz firefox, quake3 running) the lockup callback wasn't
call once (1 hour session). Also tested with forcing GPU lockup and
lockup was reported after the 1s CP activity timeout.

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/evergreen.c|6 ++
 drivers/gpu/drm/radeon/r100.c |   84 +++
 drivers/gpu/drm/radeon/r300.c |   27 -
 drivers/gpu/drm/radeon/r600.c |   33 +-
 drivers/gpu/drm/radeon/radeon.h   |  101 ++--
 drivers/gpu/drm/radeon/radeon_asic.h  |   20 ++-
 drivers/gpu/drm/radeon/radeon_fence.c |   87 ++--
 drivers/gpu/drm/radeon/rv770.c|6 --
 8 files changed, 262 insertions(+), 102 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index b8cd119..11688e2 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -485,6 +485,12 @@ int evergreen_mc_init(struct radeon_device *rdev)
return 0;
 }
 
+bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
+{
+   /* FIXME: implement for evergreen */
+   return false;
+}
+
 int evergreen_gpu_reset(struct radeon_device *rdev)
 {
/* FIXME: implement for evergreen */
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index 932ce24..a77e754 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -1780,6 +1780,90 @@ int r100_rb2d_reset(struct radeon_device *rdev)
return -1;
 }
 
+void r100_gpu_lockup_update(struct r100_gpu_lockup *lockup, struct radeon_cp 
*cp)
+{
+   lockup-last_cp_rptr = cp-rptr;
+   lockup-last_jiffies = jiffies;
+}
+
+/**
+ * r100_gpu_cp_is_lockup() - check if CP is lockup by recording information
+ * @rdev:  radeon device structure
+ * @lockup:r100_gpu_lockup structure holding CP lockup tracking 
informations
+ * @cp:radeon_cp structure holding CP information
+ *
+ * We don't need to initialize the lockup tracking information as we will 
either
+ * have CP rptr to a different value of jiffies wrap around which will force
+ * initialization of the lockup tracking informations.
+ *
+ * A possible false positivie is if we get call after while and last_cp_rptr ==
+ * the current CP rptr, even if it's unlikely it might happen. To avoid this
+ * if the elapsed time since last call is bigger than 2 second than we return
+ * false and update the tracking information. Due to this the caller must call
+ * r100_gpu_cp_is_lockup several time in less than 2sec for lockup to be 
reported
+ * the fencing code should be cautious about that.
+ *
+ * Caller should write to the ring to force CP to do something so we don't get
+ * false positive when CP is just gived nothing to do.
+ *
+ **/
+bool r100_gpu_cp_is_lockup(struct radeon_device *rdev, struct r100_gpu_lockup 
*lockup, struct radeon_cp *cp)
+{
+   unsigned long cjiffies, elapsed;
+
+   cjiffies = jiffies;
+   if (!time_after(cjiffies, lockup-last_jiffies)) {
+   /* likely a wrap around */
+   lockup-last_jiffies = jiffies;
+   return false;
+   }
+   if (cp-rptr != lockup-last_cp_rptr) {
+   /* CP is still working no lockup */
+   lockup-last_cp_rptr = cp-rptr;
+   lockup-last_jiffies = jiffies;
+   return false;
+   }
+   elapsed = jiffies_to_msecs(cjiffies - lockup-last_jiffies);
+   if (elapsed = 2000) {
+   /* very likely the improbable case where current
+* rptr is equal to last recorded, a while ago, rptr
+* this is more likely a false positive update tracking
+* information which should force us to be recall at
+* latter point
+*/
+   lockup-last_cp_rptr = cp-rptr;
+   lockup-last_jiffies = jiffies;
+   return false;
+   }
+   if (elapsed = 1000) {
+   dev_err(rdev-dev, GPU lockup CP stall for more than 
%lumsec\n, elapsed);
+   return true;
+   }
+   /* give a chance to the GPU ... */
+   return false;
+}
+
+bool 

Re: [PATCH][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up

2010-02-26 Thread Andrew Morton
On Fri, 26 Feb 2010 11:38:59 +0100 Rafa Miecki zaj...@gmail.com wrote:

 +#define wait_interruptible_timeout(wq, timeout)
 \
 +({   \
 +long ret = timeout;  \
 +\
 +DEFINE_WAIT(wait);  \
 +prepare_to_wait(wq, wait, TASK_INTERRUPTIBLE);   \
 +if (!signal_pending(current))  \
 +ret = schedule_timeout(ret);\
 +finish_wait(wq, wait);   \
 +\
 +ret; \
 +})

It's often a mistake to use signals in-kernel.  Signals are more a
userspace thing and it's better to use the lower-level kernel-specific
messaging tools in-kernel.  Bear in mind that userspace can
independently and asynchronously send, accept and block signals.

Can KMS use wait_event_interruptible_timeout()?

--
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: fence cleanup + more reliable GPU lockup detection

2010-02-26 Thread Rafał Miłecki
2010/2/26 Jerome Glisse jgli...@redhat.com:
 The fence cleanup lead to GPU lockup detection improvement, this
 patch introduce a callback, allowing to do asic specific test for
 lockup detection. In this patch the CP is use as a first indicator
 of GPU lockup. If CP doesn't make progress during 1second we assume
 we are facing a GPU lockup.

 To avoid overhead of testing GPU lockup frequently due to fence
 taking time to be signaled we query the lockup callback every
 100msec. There is plenty code comment explaining the design  choise
 inside the code.

Let me check this with my reproducible lock up :) Can I test this on
top of any branch (like drm-next or drm-radeon-testing)? Or does it
depend on some specific patches?

-- 
Rafał

--
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][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up

2010-02-26 Thread Rafał Miłecki
W dniu 26 lutego 2010 17:14 użytkownik Andrew Morton
a...@linux-foundation.org napisał:
 On Fri, 26 Feb 2010 11:38:59 +0100 Rafa Miecki zaj...@gmail.com wrote:

 +#define wait_interruptible_timeout(wq, timeout)
     \
 +({                                   \
 +    long ret = timeout;                      \
 +                                    \
 +    DEFINE_WAIT(wait);                      \
 +    prepare_to_wait(wq, wait, TASK_INTERRUPTIBLE);       \
 +    if (!signal_pending(current))                  \
 +        ret = schedule_timeout(ret);            \
 +    finish_wait(wq, wait);                   \
 +                                    \
 +    ret;                             \
 +})

 It's often a mistake to use signals in-kernel.  Signals are more a
 userspace thing and it's better to use the lower-level kernel-specific
 messaging tools in-kernel.  Bear in mind that userspace can
 independently and asynchronously send, accept and block signals.

Can you point me to something kernel-level please?


 Can KMS use wait_event_interruptible_timeout()?

No. Please check definition of this:

#define wait_event_interruptible_timeout(wq, condition, timeout)\
({  \
long __ret = timeout;   \
if (!(condition))   \
__wait_event_interruptible_timeout(wq, condition, __ret); \
__ret;  \
})

It uses condition there, but that's not a big issue. We just need to
pass 0 (false) there and it will work so far.

But then check __wait_event_interruptible_timeout definition, please.
It goes into sleep and after waking up it checks for value returned by
schedule_timeout. That's what breaks our (needed by radeon) sleeping.
If timeout didn't expire it does into sleep again!

What we need is continue reclocking after waking up. If this has
happend before timeout expired, that means we was woken up by VBLANK
interrupt handler. We love that situation and we do not want to go
sleep again.

On the other hand we need to have some timeout in case VBLANK
interrupt won't come.

-- 
Rafał

--
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/3] libdrm_nouveau requires libdrm

2010-02-26 Thread Julien Cristau
nouveau_drmif.h includes xf86drm.h.

Signed-off-by: Julien Cristau jcris...@debian.org
---
 nouveau/libdrm_nouveau.pc.in |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/nouveau/libdrm_nouveau.pc.in b/nouveau/libdrm_nouveau.pc.in
index 7ef49e5..6ae6287 100644
--- a/nouveau/libdrm_nouveau.pc.in
+++ b/nouveau/libdrm_nouveau.pc.in
@@ -8,3 +8,4 @@ Description: Userspace interface to nouveau kernel DRM services
 Version: 0.6
 Libs: -L${libdir} -ldrm_nouveau
 Cflags: -I${includedir} -I${includedir}/drm -I${includedir}/nouveau
+Requires.private: libdrm
-- 
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 3/3] Install headers to $(includedir)/libdrm

2010-02-26 Thread Julien Cristau
Avoids conflicts with kernel headers.

Signed-off-by: Julien Cristau jcris...@debian.org
---
This was suggested by Eric so distros can let the kernel install drm
headers, but provide updated headers from libdrm so we can build new
drivers regardless of the kernel version.

 include/drm/Makefile.am  |2 +-
 libdrm.pc.in |2 +-
 nouveau/Makefile.am  |2 +-
 nouveau/libdrm_nouveau.pc.in |2 +-
 radeon/Makefile.am   |2 +-
 radeon/libdrm_radeon.pc.in   |2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/drm/Makefile.am b/include/drm/Makefile.am
index 9046955..43695bd 100644
--- a/include/drm/Makefile.am
+++ b/include/drm/Makefile.am
@@ -22,7 +22,7 @@
 # however, r300 and via need their reg headers installed in order to build.
 # better solutions are welcome.
 
-klibdrmincludedir = ${includedir}/drm
+klibdrmincludedir = ${includedir}/libdrm
 klibdrminclude_HEADERS = \
drm.h \
drm_mode.h \
diff --git a/libdrm.pc.in b/libdrm.pc.in
index 6e00597..b46e2a6 100644
--- a/libdrm.pc.in
+++ b/libdrm.pc.in
@@ -7,4 +7,4 @@ Name: libdrm
 Description: Userspace interface to kernel DRM services
 Version: @PACKAGE_VERSION@
 Libs: -L${libdir} -ldrm
-Cflags: -I${includedir} -I${includedir}/drm
+Cflags: -I${includedir} -I${includedir}/libdrm
diff --git a/nouveau/Makefile.am b/nouveau/Makefile.am
index 5d759c5..b6d214a 100644
--- a/nouveau/Makefile.am
+++ b/nouveau/Makefile.am
@@ -34,7 +34,7 @@ libdrm_nouveaucommoninclude_HEADERS = \
nouveau_reloc.h
 
 
-libdrm_nouveauincludedir = ${includedir}/drm
+libdrm_nouveauincludedir = ${includedir}/libdrm
 libdrm_nouveauinclude_HEADERS = \
nouveau_drmif.h
 
diff --git a/nouveau/libdrm_nouveau.pc.in b/nouveau/libdrm_nouveau.pc.in
index 6ae6287..c78a28a 100644
--- a/nouveau/libdrm_nouveau.pc.in
+++ b/nouveau/libdrm_nouveau.pc.in
@@ -7,5 +7,5 @@ Name: libdrm_nouveau
 Description: Userspace interface to nouveau kernel DRM services
 Version: 0.6
 Libs: -L${libdir} -ldrm_nouveau
-Cflags: -I${includedir} -I${includedir}/drm -I${includedir}/nouveau
+Cflags: -I${includedir} -I${includedir}/libdrm -I${includedir}/nouveau
 Requires.private: libdrm
diff --git a/radeon/Makefile.am b/radeon/Makefile.am
index 29af1df..de78232 100644
--- a/radeon/Makefile.am
+++ b/radeon/Makefile.am
@@ -41,7 +41,7 @@ libdrm_radeon_la_SOURCES = \
radeon_bo.c \
radeon_cs.c
 
-libdrm_radeonincludedir = ${includedir}/drm
+libdrm_radeonincludedir = ${includedir}/libdrm
 libdrm_radeoninclude_HEADERS = \
radeon_bo.h \
radeon_cs.h \
diff --git a/radeon/libdrm_radeon.pc.in b/radeon/libdrm_radeon.pc.in
index ab703e1..68ef0ab 100644
--- a/radeon/libdrm_radeon.pc.in
+++ b/radeon/libdrm_radeon.pc.in
@@ -7,4 +7,4 @@ Name: libdrm_radeon
 Description: Userspace interface to kernel DRM services for radeon
 Version: @PACKAGE_VERSION@
 Libs: -L${libdir} -ldrm_radeon
-Cflags: -I${includedir} -I${includedir}/drm
+Cflags: -I${includedir} -I${includedir}/libdrm
-- 
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


Re: [PATCH 2/3] libdrm_nouveau requires libdrm

2010-02-26 Thread Kristian Høgsberg
On Fri, Feb 26, 2010 at 1:07 PM, Julien Cristau jcris...@debian.org wrote:
 nouveau_drmif.h includes xf86drm.h.

If it's a source level dependency it should be a regular Requires: in
the .pc.  Requires.private: is only for private libraries you link to
but don't expose their API in your header files.  The idea is (AFAIK)
that you can ask pkg-config to list all libraries to link to for
static linking, in which case pkg-config needs a way to find all
needed libraries.  It even looks like Requires.private has been
obsoleted by Libs.private in recent pkg-config.

 Signed-off-by: Julien Cristau jcris...@debian.org
 ---
  nouveau/libdrm_nouveau.pc.in |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)

 diff --git a/nouveau/libdrm_nouveau.pc.in b/nouveau/libdrm_nouveau.pc.in
 index 7ef49e5..6ae6287 100644
 --- a/nouveau/libdrm_nouveau.pc.in
 +++ b/nouveau/libdrm_nouveau.pc.in
 @@ -8,3 +8,4 @@ Description: Userspace interface to nouveau kernel DRM 
 services
  Version: 0.6
  Libs: -L${libdir} -ldrm_nouveau
  Cflags: -I${includedir} -I${includedir}/drm -I${includedir}/nouveau
 +Requires.private: libdrm
 --
 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


--
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][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up

2010-02-26 Thread Ville Syrjälä
On Fri, Feb 26, 2010 at 06:33:57PM +0100, Rafał Miłecki wrote:
 W dniu 26 lutego 2010 17:14 użytkownik Andrew Morton
 a...@linux-foundation.org napisał:
  On Fri, 26 Feb 2010 11:38:59 +0100 Rafa Miecki zaj...@gmail.com wrote:
 
  +#define wait_interruptible_timeout(wq, timeout)
      \
  +({                                   \
  +    long ret = timeout;                      \
  +                                    \
  +    DEFINE_WAIT(wait);                      \
  +    prepare_to_wait(wq, wait, TASK_INTERRUPTIBLE);       \
  +    if (!signal_pending(current))                  \
  +        ret = schedule_timeout(ret);            \
  +    finish_wait(wq, wait);                   \
  +                                    \
  +    ret;                             \
  +})
 
  It's often a mistake to use signals in-kernel.  Signals are more a
  userspace thing and it's better to use the lower-level kernel-specific
  messaging tools in-kernel.  Bear in mind that userspace can
  independently and asynchronously send, accept and block signals.
 
 Can you point me to something kernel-level please?
 
 
  Can KMS use wait_event_interruptible_timeout()?
 
 No. Please check definition of this:
 
 #define wait_event_interruptible_timeout(wq, condition, timeout)  \
 ({\
   long __ret = timeout;   \
   if (!(condition))   \
   __wait_event_interruptible_timeout(wq, condition, __ret); \
   __ret;  \
 })
 
 It uses condition there, but that's not a big issue. We just need to
 pass 0 (false) there and it will work so far.

Disabling the condition check doesn't make sense.

You could use a completion.

init_completion(vbl_irq);
enable_vbl_irq();
wait_for_completion(vbl_irq);
disable_vbl_irq();
and call complete(vbl_irq) in the interrupt handler.

The same would of course work with just some flag or counter
and a wait queue. Isn't there already a vbl counter that you could
compare in the condition?

-- 
Ville Syrjälä
syrj...@sci.fi
http://www.sci.fi/~syrjala/

--
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 2/3] libdrm_nouveau requires libdrm

2010-02-26 Thread Kristian Høgsberg
2010/2/26 Julien Cristau jcris...@debian.org:
 On Fri, Feb 26, 2010 at 13:38:59 -0500, Kristian Høgsberg wrote:

 On Fri, Feb 26, 2010 at 1:07 PM, Julien Cristau jcris...@debian.org wrote:
  nouveau_drmif.h includes xf86drm.h.

 If it's a source level dependency it should be a regular Requires: in
 the .pc.  Requires.private: is only for private libraries you link to
 but don't expose their API in your header files.  The idea is (AFAIK)
 that you can ask pkg-config to list all libraries to link to for
 static linking, in which case pkg-config needs a way to find all
 needed libraries.  It even looks like Requires.private has been
 obsoleted by Libs.private in recent pkg-config.

 That's not what the pkg-config maintainer says...

 http://err.no/personal/blog/2008/Mar/25

 Using Requires.private lets us get the necessary cflags, but avoids
 linking to the library if not using --static.

Oh, I see.  Well it sounds like at some point Requires.private did
what I thought it did.  Thanks for the pointer.

Kristian

--
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: initialize set_surface_reg reg for rs600 asic

2010-02-26 Thread Jerome Glisse
rs600 asic was missing set_surface_reg callback leading to
oops.

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/radeon_asic.h |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_asic.h 
b/drivers/gpu/drm/radeon/radeon_asic.h
index 4572a66..d3a157b 100644
--- a/drivers/gpu/drm/radeon/radeon_asic.h
+++ b/drivers/gpu/drm/radeon/radeon_asic.h
@@ -407,6 +407,8 @@ static struct radeon_asic rs600_asic = {
.get_pcie_lanes = NULL,
.set_pcie_lanes = NULL,
.set_clock_gating = radeon_atom_set_clock_gating,
+   .set_surface_reg = r100_set_surface_reg,
+   .clear_surface_reg = r100_clear_surface_reg,
.bandwidth_update = rs600_bandwidth_update,
.hpd_init = rs600_hpd_init,
.hpd_fini = rs600_hpd_fini,
-- 
1.6.6


--
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 25093] mesa demo cubemap renders incorrectly with some filter combinations.

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25093


Andy Furniss li...@andyfurniss.entadsl.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Comment #1 from Andy Furniss li...@andyfurniss.entadsl.com  2010-02-26 
11:34:40 PST ---
(In reply to comment #0)
 Created an attachment (id=31208)
 -- (http://bugs.freedesktop.org/attachment.cgi?id=31208) [details]
 incorrect cubemap
 
 Git mesa/ddx  drm-next on rv670 AGP.
 
 I've only just tried this so don't know if it has ever worked.
 
 Pressing f several times to cycle through the filter types with
 mesa/progs/demos/cubemap reveals that some combinations result in incorrect
 rendering compared to swrast.
 
 example attached.
 

This is now working for me.

My testing hasn't been that regular recently, so I am not sure when the fix
happened.


-- 
Configure bugmail: http://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 1/2] drm/radeon/kms: rename gpu_reset to asic_reset V2

2010-02-26 Thread Jerome Glisse
Patch rename gpu_reset to asic_reset in prevision of having
gpu_reset doing more stuff than just basic asic reset.

V2 store the last time we had new fence in the fence driver
so on EBUSY/ERESTART we still keep accurate timing information
on how long we have been waiting for a given fence

Signed-off-by: Jerome Glisse jgli...@redhat.com
---
 drivers/gpu/drm/radeon/evergreen.c |2 +-
 drivers/gpu/drm/radeon/r100.c  |6 ++--
 drivers/gpu/drm/radeon/r300.c  |6 ++--
 drivers/gpu/drm/radeon/r420.c  |4 +-
 drivers/gpu/drm/radeon/r520.c  |4 +-
 drivers/gpu/drm/radeon/r600.c  |2 +-
 drivers/gpu/drm/radeon/radeon.h|8 +++---
 drivers/gpu/drm/radeon/radeon_asic.h   |   36 
 drivers/gpu/drm/radeon/radeon_device.c |2 +-
 drivers/gpu/drm/radeon/radeon_fence.c  |   23 
 drivers/gpu/drm/radeon/rs400.c |4 +-
 drivers/gpu/drm/radeon/rs600.c |4 +-
 drivers/gpu/drm/radeon/rs690.c |4 +-
 drivers/gpu/drm/radeon/rv515.c |8 +++---
 14 files changed, 59 insertions(+), 54 deletions(-)

diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 11688e2..748c58a 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -491,7 +491,7 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
return false;
 }
 
-int evergreen_gpu_reset(struct radeon_device *rdev)
+int evergreen_asic_reset(struct radeon_device *rdev)
 {
/* FIXME: implement for evergreen */
return 0;
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index a77e754..029c55d 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -1864,7 +1864,7 @@ bool r100_gpu_is_lockup(struct radeon_device *rdev)
return r100_gpu_cp_is_lockup(rdev, rdev-config.r100.lockup, 
rdev-cp);
 }
 
-int r100_gpu_reset(struct radeon_device *rdev)
+int r100_asic_reset(struct radeon_device *rdev)
 {
uint32_t status;
 
@@ -3503,7 +3503,7 @@ int r100_resume(struct radeon_device *rdev)
/* Resume clock before doing reset */
r100_clock_startup(rdev);
/* Reset gpu before posting otherwise ATOM will enter infinite loop */
-   if (radeon_gpu_reset(rdev)) {
+   if (radeon_asic_reset(rdev)) {
dev_warn(rdev-dev, GPU reset failed ! (0xE40=0x%08X, 
0x7C0=0x%08X)\n,
RREG32(R_000E40_RBBM_STATUS),
RREG32(R_0007C0_CP_STAT));
@@ -3571,7 +3571,7 @@ int r100_init(struct radeon_device *rdev)
return r;
}
/* Reset gpu before posting otherwise ATOM will enter infinite loop */
-   if (radeon_gpu_reset(rdev)) {
+   if (radeon_asic_reset(rdev)) {
dev_warn(rdev-dev,
GPU reset failed ! (0xE40=0x%08X, 0x7C0=0x%08X)\n,
RREG32(R_000E40_RBBM_STATUS),
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c
index 2c5d272..f033562 100644
--- a/drivers/gpu/drm/radeon/r300.c
+++ b/drivers/gpu/drm/radeon/r300.c
@@ -446,7 +446,7 @@ bool r300_gpu_is_lockup(struct radeon_device *rdev)
return r100_gpu_cp_is_lockup(rdev, rdev-config.r300.lockup, 
rdev-cp);
 }
 
-int r300_gpu_reset(struct radeon_device *rdev)
+int r300_asic_reset(struct radeon_device *rdev)
 {
uint32_t status;
 
@@ -1326,7 +1326,7 @@ int r300_resume(struct radeon_device *rdev)
/* Resume clock before doing reset */
r300_clock_startup(rdev);
/* Reset gpu before posting otherwise ATOM will enter infinite loop */
-   if (radeon_gpu_reset(rdev)) {
+   if (radeon_asic_reset(rdev)) {
dev_warn(rdev-dev, GPU reset failed ! (0xE40=0x%08X, 
0x7C0=0x%08X)\n,
RREG32(R_000E40_RBBM_STATUS),
RREG32(R_0007C0_CP_STAT));
@@ -1396,7 +1396,7 @@ int r300_init(struct radeon_device *rdev)
return r;
}
/* Reset gpu before posting otherwise ATOM will enter infinite loop */
-   if (radeon_gpu_reset(rdev)) {
+   if (radeon_asic_reset(rdev)) {
dev_warn(rdev-dev,
GPU reset failed ! (0xE40=0x%08X, 0x7C0=0x%08X)\n,
RREG32(R_000E40_RBBM_STATUS),
diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c
index e0eb9b6..8e6d852 100644
--- a/drivers/gpu/drm/radeon/r420.c
+++ b/drivers/gpu/drm/radeon/r420.c
@@ -233,7 +233,7 @@ int r420_resume(struct radeon_device *rdev)
/* Resume clock before doing reset */
r420_clock_resume(rdev);
/* Reset gpu before posting otherwise ATOM will enter infinite loop */
-   if (radeon_gpu_reset(rdev)) {
+   if (radeon_asic_reset(rdev)) {
dev_warn(rdev-dev, GPU reset failed ! (0xE40=0x%08X, 
0x7C0=0x%08X)\n,

[Bug 26334] Thinkpad T400: AMD Mobility Radeon HD 3470 + 2 monitors

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26334





--- Comment #10 from Kirill A. Shutemov kir...@shutemov.name  2010-02-26 
14:58:59 PST ---
I've gotten working VGA-0 when set default output device in BIOS to VGA-0. In
this case, after KMS initialization I can see console on both VGA-0 and LVDS
(console occupies only part of VGA-0 which is bigger than LVDS, rest of the
screen is white).

Unfortunately, this trick works only if I initially boot with connected VGA-0.
BIOS fallbacks to boot with LVDS if it doesn't see VGA-0.

Any ideas? 


-- 
Configure bugmail: http://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 26334] Thinkpad T400: AMD Mobility Radeon HD 3470 + 2 monitors

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26334





--- Comment #11 from Alex Deucher ag...@yahoo.com  2010-02-26 15:07:29 PST ---
Does xf86-video-ati from git master (for UMS) or a newer drm (for KMS) help? 
You might try drm-radeon-testing.  These patches might help for KMS:
http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commitdiff;h=ff4feeadf7581d27704dedcecf0209e65487
http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commitdiff;h=383be5d1789d9a7a2e77dca1cb0aca89507d069e


-- 
Configure bugmail: http://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 26781] New: RV670 Oops with PM and xrandr.

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26781

   Summary: RV670 Oops with PM and xrandr.
   Product: Mesa
   Version: git
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Drivers/DRI/R600
AssignedTo: dri-devel@lists.sourceforge.net
ReportedBy: li...@andyfurniss.entadsl.com


Running current drt + pm patch in 

http://bugs.freedesktop.org/show_bug.cgi?id=26631

While changing res with xrandr today I got a PM Oops, I can't reproduce so
maybe it tried to switch power just as xrandr was changing res. There is an
added complication that I was testing xrandr due to an issue I have with it - 

http://bugs.freedesktop.org/show_bug.cgi?id=24532

so it may have been in a non normal state at the time.

While grepping my logs for the details, I noticed that it has happened before
and this case is reproducible - If I modprobe radeon without first loading
fbcon, startx, when I quit X I will get the Oops.


-- 
Configure bugmail: http://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 26781] RV670 Oops with PM and xrandr.

2010-02-26 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=26781





--- Comment #1 from Andy Furniss li...@andyfurniss.entadsl.com  2010-02-26 
15:13:16 PST ---
Created an attachment (id=33599)
 -- (http://bugs.freedesktop.org/attachment.cgi?id=33599)
pm oops


-- 
Configure bugmail: http://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


Re: [PATCH][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up

2010-02-26 Thread Linus Torvalds


On Fri, 26 Feb 2010, Rafał Miłecki wrote:

 Following macro is soemthing that seems to work fine for us, but instead
 introducing this to radeon KMS only, I'd like to propose adding this to whole
 wait.h. Do you this it's something we should place there? Can someone take 
 this
 patch for me? Or maybe you find this rather useless and we should keep this
 marco locally?

This does not smell generic to me. In fact, it makes me personally think 
you're doing something wrong in the first place, but maybe it's ok. But in 
case it really is ok, I'd still not put it in a generic header file unless 
you can point to other cases where it really makes sense to do this.

Linus

--
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 15293] Flash video laggy inside Firefox only with KMS

2010-02-26 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=15293





--- Comment #25 from Pauli suok...@gmail.com  2010-02-27 06:39:33 ---
I vote for NOTOURBUG too. 

Maybe ddx could be a bit better optimized for XGetSubImage that flash is using
but in end we can't get it perform well enough anyway without modifying the
blob.

So what exactly is happening to slow down here:

-Flash is playing the video to vram.
-Flash calls XGetSubImage multiple times per frame to read back the whole
video.
-XGetSubImage tries to copy data from VRAM to system memory but there seems to
be huge latency for CPU to read the data that was just written by GPU.

Hack patch: http://www.youtube.com/watch?v=JLkGGNbBJeI ;)

-- 
Configure bugmail: http://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