[Bug 13446] resume after suspend-to-ram broken on Toshiba Satellite A100 with 2.6.30-rc8 (works in 2.6.28)

2009-12-28 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=13446


Zhang Rui  changed:

   What|Removed |Added

  Component|Hibernation/Suspend |Video(DRI - non Intel)
 AssignedTo|power-management_ot...@kern |drivers_video-...@kernel-bu
   |el-bugs.osdl.org|gs.osdl.org
Product|Power Management|Drivers




--- Comment #30 from Zhang Rui   2009-12-28 08:16:14 ---
yes, this is a graphics problem.
re-assign to video category.

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

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25490] kernel crash with 2.6.32, drm and kms enabled.

2009-12-28 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25490





--- Comment #9 from che...@kalri.org  2009-12-28 00:55:50 PST ---

Ok, gave it a shot with kms disabled and that did it.  Looks like whatever is
going on, seems to be kms and kernel side. 

(In reply to comment #8)
> if you disable kms, your system will probably not freeze.
> since I've disabled it (kernel wise) the system didn't froze even once.
> 


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

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25741] [R600/KMS] external display flickering

2009-12-28 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25741





--- Comment #11 from Luca Tettamanti   2009-12-28 02:41:49 
PST ---
I've bisected both problems.

The flickering is causes by:

279b215ecb8acc735c01ac89b1aa28c4a27dcafa is the first bad commit
commit 279b215ecb8acc735c01ac89b1aa28c4a27dcafa 
Author: Alex Deucher 
Date:   Tue Dec 8 14:07:03 2009 -0500   

drm/radeon/kms: make sure ss id matches

entries in the ss table aren't always ordered
by id.

Signed-off-by: Alex Deucher 
Signed-off-by: Dave Airlie 

While the missing EDID on LVDS points to:

d3f420d1089169fb48366e1aa750bdd92db0a04b is the first bad commit
commit d3f420d1089169fb48366e1aa750bdd92db0a04b 
Author: Alex Deucher 
Date:   Tue Dec 8 14:30:49 2009 -0500   

drm/radeon/kms: make sure i2c id matches

Entries in the i2c table aren't always ordered
by id.  This allows us to remove some quirks
that are no longer needed.

Signed-off-by: Alex Deucher 
Signed-off-by: Dave Airlie 


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

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Luca Tettamanti
On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
> W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
>  napisał:
>> It may be that the engine doesn't like to be reclocked while it's
>> running.  Perhaps we should use the GUI idle interrupt rather than
>> vblanks to reclock the engine.
>
> Could you say something more about GUI idle interrupt, please?

It's mentioned in the documentation of the IH (see r600.c); I guess
it's enabled by GUI_IDLE_INT_ENABLE.

> What is this, do we already have code for that?

Unless there are more subtleties all is needed it to enabled the
interrupt and catch it in r600_irq_process.

L

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: lvds downclocking breaks on G45/thinkpad T500

2009-12-28 Thread Andres Freund
On Monday 28 December 2009 02:24:48 ykzhao wrote:
> On Sun, 2009-12-27 at 22:18 +0800, Andres Freund wrote:
> > On Sunday 27 December 2009 14:10:55 ykzhao wrote:
> > > On Sun, 2009-12-27 at 01:41 +0800, Andres Freund wrote:
> > > > On Saturday 26 December 2009 17:49:29 Andres Freund wrote:
> > > > > On 2.6.33-rc1 I noticed that the display of my T500 with a G45
> > > > > reacts very slowly (you can see the text appearing) and colors take
> > > > > a time to "solidify". I.e. making a white terminal black takes some
> > > > > seconds. ... Anything I can do to help analyzing the issue?
> > > >
> > > > Thats with recent git checkouts of xorg btw, if thats relevant (which
> > > > I doubt a bit).
> > > >
> > > > The missing config is attached now as well.
> > >
> > > It will be great if you can open a new bug on
> > > bugs.freedesktop.org(Product=xorg, component = driver/intel) and attach
> > > the following info:
> > > 1. add the boot option of "drm.debug=0x06" and attach the output of
> > > dmesg.
> > > 2. attach the output of "xrandr -q --verbose"
> > > 3. attach the vbios.dump, which can be obtained by using the
> > > following command:
> > > echo 1 > /sys/devices/pci:00/:00:02.0/rom
> > > cat /sys/devices/pci:00/:00:02.0/rom
> > > 4. attach the output of Xorg.0.log
> Anyway, please open a new bug and I will investigate it.
Created as #25809.

Andres

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Alex Deucher
On Mon, Dec 28, 2009 at 5:53 AM, Luca Tettamanti  wrote:
> On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
>> W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
>>  napisał:
>>> It may be that the engine doesn't like to be reclocked while it's
>>> running.  Perhaps we should use the GUI idle interrupt rather than
>>> vblanks to reclock the engine.
>>
>> Could you say something more about GUI idle interrupt, please?
>
> It's mentioned in the documentation of the IH (see r600.c); I guess
> it's enabled by GUI_IDLE_INT_ENABLE.
>
>> What is this, do we already have code for that?
>
> Unless there are more subtleties all is needed it to enabled the
> interrupt and catch it in r600_irq_process.

That's pretty much it.  Pre-r6xx asics have a GUI interrupt as well.
I can look up the details for that if they are not already documented.

Alex

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Luca Tettamanti
2009/12/28 Alex Deucher :
> On Mon, Dec 28, 2009 at 5:53 AM, Luca Tettamanti  wrote:
>> On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
>>> W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
>>>  napisał:
 It may be that the engine doesn't like to be reclocked while it's
 running.  Perhaps we should use the GUI idle interrupt rather than
 vblanks to reclock the engine.
>>>
>>> Could you say something more about GUI idle interrupt, please?
>>
>> It's mentioned in the documentation of the IH (see r600.c); I guess
>> it's enabled by GUI_IDLE_INT_ENABLE.
>>
>>> What is this, do we already have code for that?
>>
>> Unless there are more subtleties all is needed it to enabled the
>> interrupt and catch it in r600_irq_process.
>
> That's pretty much it.  Pre-r6xx asics have a GUI interrupt as well.
> I can look up the details for that if they are not already documented.

I can't find a way to ack the interrupt; I see
RADEON_GUI_IDLE_INT_TEST_ACK but I think it's for pre-r6xx cards,
right?

Luca

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Alex Deucher
2009/12/28 Luca Tettamanti :
> 2009/12/28 Alex Deucher :
>> On Mon, Dec 28, 2009 at 5:53 AM, Luca Tettamanti  wrote:
>>> On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
 W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
  napisał:
> It may be that the engine doesn't like to be reclocked while it's
> running.  Perhaps we should use the GUI idle interrupt rather than
> vblanks to reclock the engine.

 Could you say something more about GUI idle interrupt, please?
>>>
>>> It's mentioned in the documentation of the IH (see r600.c); I guess
>>> it's enabled by GUI_IDLE_INT_ENABLE.
>>>
 What is this, do we already have code for that?
>>>
>>> Unless there are more subtleties all is needed it to enabled the
>>> interrupt and catch it in r600_irq_process.
>>
>> That's pretty much it.  Pre-r6xx asics have a GUI interrupt as well.
>> I can look up the details for that if they are not already documented.
>
> I can't find a way to ack the interrupt; I see
> RADEON_GUI_IDLE_INT_TEST_ACK but I think it's for pre-r6xx cards,
> right?

You don't have to ACK it as the CP generates the interrupt in
software; similar to the sw interrupts used for fences.

Alex

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[Bug 25741] [R600/KMS] external display flickering

2009-12-28 Thread bugzilla-daemon
http://bugs.freedesktop.org/show_bug.cgi?id=25741





--- Comment #12 from Alex Deucher   2009-12-28 10:47:29 PST ---
Created an attachment (id=32336)
 --> (http://bugs.freedesktop.org/attachment.cgi?id=32336)
add missing breaks

This patch should fix it.


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

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [BISECTED] drm: random hang since 620f378 "drm: prune modes when ..."

2009-12-28 Thread Jesse Barnes
On Mon, 21 Dec 2009 17:57:08 +
Arnd Bergmann  wrote:

> On Monday 21 December 2009 16:06:43 Arnd Bergmann wrote:
> > 
> > -   if (IS_G4X(dev)) {
> > -   u16 gcfgc;
> > -
> > -   /* Adjust render clock... */
> > -   pci_read_config_word(dev->pdev, GCFGC, &gcfgc);
> > -
> > -   /* Down to minimum... */
> > -   gcfgc &= ~GM45_GC_RENDER_CLOCK_MASK;
> > -   gcfgc |= GM45_GC_RENDER_CLOCK_266_MHZ;
> > -
> > -   pci_write_config_word(dev->pdev, GCFGC, gcfgc);
> > -   } else if (IS_I965G(dev)) {
> > +   if (IS_I965G(dev)) {
> > u16 gcfgc;
> 
> This crashed again immediately, apparently because IS_I965G is a
> superset of IS_G4X (that seems counterintuitive), but not it seems to
> run using this modified version of the patch (half an hour so far).
> 

This code should be completely gone in Eric's drm-intel-next branch
(from
git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel.git), so
hopefully when that lands upstream (if it hasn't already) things will
be solid for you.

Thanks,
Jesse

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm/radeon/kms: add missing breaks in i2c and ss lookups

2009-12-28 Thread Alex Deucher
>From 43acccab867af354a0eed8847e0552685efd2742 Mon Sep 17 00:00:00 2001
From: Alex Deucher 
Date: Mon, 28 Dec 2009 13:45:23 -0500
Subject: [PATCH] drm/radeon/kms: add missing breaks in i2c and ss lookups

Should fix fdo bug 25741

Signed-off-by: Alex Deucher 
---
 drivers/gpu/drm/radeon/radeon_atombios.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c
b/drivers/gpu/drm/radeon/radeon_atombios.c
index a7d9a18..2b903a9 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -114,6 +114,7 @@ static inline struct radeon_i2c_bus_rec
radeon_lookup_i2c_gpio(struct radeon_dev
i2c.i2c_id = gpio->sucI2cId.ucAccess;

i2c.valid = true;
+   break;
}
}

@@ -1026,6 +1027,7 @@ static struct radeon_atom_ss
*radeon_atombios_get_ss_info(struct
ss->delay = ss_info->asSS_Info[i].ucSS_Delay;
ss->range = ss_info->asSS_Info[i].ucSS_Range;
ss->refdiv = 
ss_info->asSS_Info[i].ucRecommendedRef_Div;
+   break;
}
}
}
-- 
1.5.6.3


0001-drm-radeon-kms-add-missing-breaks-in-i2c-and-ss-loo.patch
Description: application/mbox
--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev --
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] rs600: use correct mask for SW interrupt

2009-12-28 Thread Luca Tettamanti
The mask happens to be the same, but the IH is reading the status, not the
not the control register.

Signed-off-by: Luca Tettamanti 
---
 drivers/gpu/drm/radeon/rs600.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.git/drivers/gpu/drm/radeon/rs600.c
===
--- linux-2.6.git.orig/drivers/gpu/drm/radeon/rs600.c   2009-12-28 
22:31:17.295766620 +0100
+++ linux-2.6.git/drivers/gpu/drm/radeon/rs600.c2009-12-28 
22:32:30.927884090 +0100
@@ -396,7 +396,7 @@
}
while (status || r500_disp_int) {
/* SW interrupt */
-   if (G_40_SW_INT_EN(status))
+   if (G_44_SW_INT(status))
radeon_fence_process(rdev);
/* Vertical blank interrupts */
if (G_007EDC_LB_D1_VBLANK_INTERRUPT(r500_disp_int))

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Luca Tettamanti
On Mon, Dec 28, 2009 at 01:32:24PM -0500, Alex Deucher wrote:
> 2009/12/28 Luca Tettamanti :
> > 2009/12/28 Alex Deucher :
> >> On Mon, Dec 28, 2009 at 5:53 AM, Luca Tettamanti  
> >> wrote:
> >>> On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
>  W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
>   napisał:
> > It may be that the engine doesn't like to be reclocked while it's
> > running.  Perhaps we should use the GUI idle interrupt rather than
> > vblanks to reclock the engine.
> 
>  Could you say something more about GUI idle interrupt, please?
> >>>
> >>> It's mentioned in the documentation of the IH (see r600.c); I guess
> >>> it's enabled by GUI_IDLE_INT_ENABLE.
> >>>
>  What is this, do we already have code for that?
> >>>
> >>> Unless there are more subtleties all is needed it to enabled the
> >>> interrupt and catch it in r600_irq_process.
> >>
> >> That's pretty much it.  Pre-r6xx asics have a GUI interrupt as well.
> >> I can look up the details for that if they are not already documented.
> >
> > I can't find a way to ack the interrupt; I see
> > RADEON_GUI_IDLE_INT_TEST_ACK but I think it's for pre-r6xx cards,
> > right?
> 
> You don't have to ACK it as the CP generates the interrupt in
> software; similar to the sw interrupts used for fences.

Ok, good: I've got the stub running on my M76. r100 and rs600 parts are
untested. Comments?

--- linux-2.6.git.orig/drivers/gpu/drm/radeon/r600.c2009-12-28 
16:38:38.388825742 +0100
+++ linux-2.6.git/drivers/gpu/drm/radeon/r600.c 2009-12-28 22:03:12.936157804 
+0100
@@ -2458,6 +2458,7 @@
 int r600_irq_set(struct radeon_device *rdev)
 {
u32 cp_int_cntl = CNTX_BUSY_INT_ENABLE | CNTX_EMPTY_INT_ENABLE;
+   u32 grbm_int_cntl;
u32 mode_int = 0;
u32 hpd1, hpd2, hpd3, hpd4 = 0, hpd5 = 0, hpd6 = 0;
 
@@ -2465,6 +2466,8 @@
if (!rdev->ih.enabled)
return 0;
 
+   grbm_int_cntl = RREG32(GRBM_INT_CNTL) & ~GUI_IDLE_INT_ENABLE;
+
if (ASIC_IS_DCE3(rdev)) {
hpd1 = RREG32(DC_HPD1_INT_CONTROL) & ~DC_HPDx_INT_EN;
hpd2 = RREG32(DC_HPD2_INT_CONTROL) & ~DC_HPDx_INT_EN;
@@ -2484,6 +2487,10 @@
DRM_DEBUG("r600_irq_set: sw int\n");
cp_int_cntl |= RB_INT_ENABLE;
}
+   if (rdev->irq.idle_int) {
+   DRM_DEBUG("r600_irq_set: GUI idle int\n");
+   grbm_int_cntl |= GUI_IDLE_INT_ENABLE;
+   }
if (rdev->irq.crtc_vblank_int[0]) {
DRM_DEBUG("r600_irq_set: vblank 0\n");
mode_int |= D1MODE_VBLANK_INT_MASK;
@@ -2518,6 +2525,7 @@
}
 
WREG32(CP_INT_CNTL, cp_int_cntl);
+   WREG32(GRBM_INT_CNTL, grbm_int_cntl);
WREG32(DxMODE_INT_MASK, mode_int);
if (ASIC_IS_DCE3(rdev)) {
WREG32(DC_HPD1_INT_CONTROL, hpd1);
@@ -2806,6 +2814,9 @@
case 181: /* CP EOP event */
DRM_DEBUG("IH: CP EOP\n");
break;
+   case 233: /* GUI idle event */
+   DRM_DEBUG("IH: GUI idle\n");
+   break;
default:
DRM_ERROR("Unhandled interrupt: %d %d\n", src_id, 
src_data);
break;
--- linux-2.6.git.orig/drivers/gpu/drm/radeon/radeon.h  2009-12-28 
16:38:13.945836481 +0100
+++ linux-2.6.git/drivers/gpu/drm/radeon/radeon.h   2009-12-28 
22:02:48.964001788 +0100
@@ -343,6 +343,7 @@
 struct radeon_irq {
boolinstalled;
boolsw_int;
+   boolidle_int;
/* FIXME: use a define max crtc rather than hardcode it */
boolcrtc_vblank_int[2];
/* FIXME: use defines for max hpd/dacs */
--- linux-2.6.git.orig/drivers/gpu/drm/radeon/radeon_irq_kms.c  2009-12-28 
16:37:10.669823739 +0100
+++ linux-2.6.git/drivers/gpu/drm/radeon/radeon_irq_kms.c   2009-12-28 
22:03:01.508077338 +0100
@@ -67,6 +67,7 @@
 
/* Disable *all* interrupts */
rdev->irq.sw_int = false;
+   rdev->irq.idle_int = false;
for (i = 0; i < 2; i++) {
rdev->irq.crtc_vblank_int[i] = false;
}
@@ -81,6 +82,7 @@
 
dev->max_vblank_count = 0x001f;
rdev->irq.sw_int = true;
+   rdev->irq.idle_int = true;
radeon_irq_set(rdev);
return 0;
 }
@@ -95,6 +97,7 @@
}
/* Disable *all* interrupts */
rdev->irq.sw_int = false;
+   rdev->irq.idle_int = false;
for (i = 0; i < 2; i++) {
rdev->irq.crtc_vblank_int[i] = false;
}
--- linux-2.6.git.orig/drivers/gpu/drm/radeon/r100.c2009-12-28 
22:30:59.079748392 +0100
+++ linux-2.6.git/drivers/gpu/drm/radeon/r100.c 2009-12-28 22:41:07.803741755 
+0100
@@ -246,6 +246,9 @@
if (rdev->irq.sw_int) {
tmp |= RADEON_SW_INT_ENABLE;
}
+   if (rdev->irq.idle_int) {
+   tmp |= RADEON_GUI_IDLE_INT_ENABLE;
+  

Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Rafał Miłecki
2009/12/28 Luca Tettamanti :
> On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
>> W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
>>  napisał:
>>> It may be that the engine doesn't like to be reclocked while it's
>>> running.  Perhaps we should use the GUI idle interrupt rather than
>>> vblanks to reclock the engine.
>>
>> Could you say something more about GUI idle interrupt, please?
>
> It's mentioned in the documentation of the IH (see r600.c); I guess
> it's enabled by GUI_IDLE_INT_ENABLE.

Is that IRQ reported when engine is totally idle (nothing being
processed and nothing in queue to process)? Or is that emitted just
after processing every command?

-- 
Rafał

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Alex Deucher
On Mon, Dec 28, 2009 at 5:16 PM, Rafał Miłecki  wrote:
> 2009/12/28 Luca Tettamanti :
>> On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
>>> W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
>>>  napisał:
 It may be that the engine doesn't like to be reclocked while it's
 running.  Perhaps we should use the GUI idle interrupt rather than
 vblanks to reclock the engine.
>>>
>>> Could you say something more about GUI idle interrupt, please?
>>
>> It's mentioned in the documentation of the IH (see r600.c); I guess
>> it's enabled by GUI_IDLE_INT_ENABLE.
>
> Is that IRQ reported when engine is totally idle (nothing being
> processed and nothing in queue to process)? Or is that emitted just
> after processing every command?

When the engine is idle.

Alex

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: drm/radeon/kms: pm: single frame corruptions on reclocking

2009-12-28 Thread Alex Deucher
2009/12/28 Luca Tettamanti :
> On Mon, Dec 28, 2009 at 01:32:24PM -0500, Alex Deucher wrote:
>> 2009/12/28 Luca Tettamanti :
>> > 2009/12/28 Alex Deucher :
>> >> On Mon, Dec 28, 2009 at 5:53 AM, Luca Tettamanti  
>> >> wrote:
>> >>> On Sun, Dec 27, 2009 at 1:55 AM, Rafał Miłecki  wrote:
>>  W dniu 26 grudnia 2009 20:08 użytkownik Alex Deucher
>>   napisał:
>> > It may be that the engine doesn't like to be reclocked while it's
>> > running.  Perhaps we should use the GUI idle interrupt rather than
>> > vblanks to reclock the engine.
>> 
>>  Could you say something more about GUI idle interrupt, please?
>> >>>
>> >>> It's mentioned in the documentation of the IH (see r600.c); I guess
>> >>> it's enabled by GUI_IDLE_INT_ENABLE.
>> >>>
>>  What is this, do we already have code for that?
>> >>>
>> >>> Unless there are more subtleties all is needed it to enabled the
>> >>> interrupt and catch it in r600_irq_process.
>> >>
>> >> That's pretty much it.  Pre-r6xx asics have a GUI interrupt as well.
>> >> I can look up the details for that if they are not already documented.
>> >
>> > I can't find a way to ack the interrupt; I see
>> > RADEON_GUI_IDLE_INT_TEST_ACK but I think it's for pre-r6xx cards,
>> > right?
>>
>> You don't have to ACK it as the CP generates the interrupt in
>> software; similar to the sw interrupts used for fences.
>
> Ok, good: I've got the stub running on my M76. r100 and rs600 parts are
> untested. Comments?
>

Looks pretty good.  I've included the proper defines from the register
database below and you'll need to ack the gui idle interrupts on
pre-r600 chips.  Now you just have to do something when you get the
idle interrupt.


> --- linux-2.6.git.orig/drivers/gpu/drm/radeon/r600.c    2009-12-28 
> 16:38:38.388825742 +0100
> +++ linux-2.6.git/drivers/gpu/drm/radeon/r600.c 2009-12-28 22:03:12.936157804 
> +0100
> @@ -2458,6 +2458,7 @@
>  int r600_irq_set(struct radeon_device *rdev)
>  {
>        u32 cp_int_cntl = CNTX_BUSY_INT_ENABLE | CNTX_EMPTY_INT_ENABLE;
> +       u32 grbm_int_cntl;
>        u32 mode_int = 0;
>        u32 hpd1, hpd2, hpd3, hpd4 = 0, hpd5 = 0, hpd6 = 0;
>
> @@ -2465,6 +2466,8 @@
>        if (!rdev->ih.enabled)
>                return 0;
>
> +       grbm_int_cntl = RREG32(GRBM_INT_CNTL) & ~GUI_IDLE_INT_ENABLE;
> +
>        if (ASIC_IS_DCE3(rdev)) {
>                hpd1 = RREG32(DC_HPD1_INT_CONTROL) & ~DC_HPDx_INT_EN;
>                hpd2 = RREG32(DC_HPD2_INT_CONTROL) & ~DC_HPDx_INT_EN;
> @@ -2484,6 +2487,10 @@
>                DRM_DEBUG("r600_irq_set: sw int\n");
>                cp_int_cntl |= RB_INT_ENABLE;
>        }
> +       if (rdev->irq.idle_int) {
> +               DRM_DEBUG("r600_irq_set: GUI idle int\n");
> +               grbm_int_cntl |= GUI_IDLE_INT_ENABLE;
> +       }
>        if (rdev->irq.crtc_vblank_int[0]) {
>                DRM_DEBUG("r600_irq_set: vblank 0\n");
>                mode_int |= D1MODE_VBLANK_INT_MASK;
> @@ -2518,6 +2525,7 @@
>        }
>
>        WREG32(CP_INT_CNTL, cp_int_cntl);
> +       WREG32(GRBM_INT_CNTL, grbm_int_cntl);
>        WREG32(DxMODE_INT_MASK, mode_int);
>        if (ASIC_IS_DCE3(rdev)) {
>                WREG32(DC_HPD1_INT_CONTROL, hpd1);
> @@ -2806,6 +2814,9 @@
>                case 181: /* CP EOP event */
>                        DRM_DEBUG("IH: CP EOP\n");
>                        break;
> +               case 233: /* GUI idle event */
> +                       DRM_DEBUG("IH: GUI idle\n");
> +                       break;
>                default:
>                        DRM_ERROR("Unhandled interrupt: %d %d\n", src_id, 
> src_data);
>                        break;
> --- linux-2.6.git.orig/drivers/gpu/drm/radeon/radeon.h  2009-12-28 
> 16:38:13.945836481 +0100
> +++ linux-2.6.git/drivers/gpu/drm/radeon/radeon.h       2009-12-28 
> 22:02:48.964001788 +0100
> @@ -343,6 +343,7 @@
>  struct radeon_irq {
>        bool            installed;
>        bool            sw_int;
> +       bool            idle_int;
>        /* FIXME: use a define max crtc rather than hardcode it */
>        bool            crtc_vblank_int[2];
>        /* FIXME: use defines for max hpd/dacs */
> --- linux-2.6.git.orig/drivers/gpu/drm/radeon/radeon_irq_kms.c  2009-12-28 
> 16:37:10.669823739 +0100
> +++ linux-2.6.git/drivers/gpu/drm/radeon/radeon_irq_kms.c       2009-12-28 
> 22:03:01.508077338 +0100
> @@ -67,6 +67,7 @@
>
>        /* Disable *all* interrupts */
>        rdev->irq.sw_int = false;
> +       rdev->irq.idle_int = false;
>        for (i = 0; i < 2; i++) {
>                rdev->irq.crtc_vblank_int[i] = false;
>        }
> @@ -81,6 +82,7 @@
>
>        dev->max_vblank_count = 0x001f;
>        rdev->irq.sw_int = true;
> +       rdev->irq.idle_int = true;
>        radeon_irq_set(rdev);
>        return 0;
>  }
> @@ -95,6 +97,7 @@
>        }
>        /* Disable *all* interrupts */
>        rdev->irq.sw_int = false;
> +       rdev->irq.idle_int = false;
>        for (i = 0; i < 2; i++) {
>                rdev->

[Bug 14924] New: Weird hard hangs when rendering 'some' web-sites in Firefox

2009-12-28 Thread bugzilla-daemon
http://bugzilla.kernel.org/show_bug.cgi?id=14924

   Summary: Weird hard hangs when rendering 'some' web-sites in
Firefox
   Product: Drivers
   Version: 2.5
Kernel Version: 2.6.33-rc1
  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: r...@sisk.pl
Blocks: 14885
Regression: Yes


Subject: 2.6.33-rc1 - Weird hard hangs when rendering 'some' web-sites in
Firefox
Submitter  : David 
Date   : 2009-12-21 21:53
References : http://marc.info/?l=linux-kernel&m=126143375823340&w=4

This entry is being used for tracking a regression from 2.6.32.  Please don't
close it until the problem is fixed in the mainline.

[rjw: I guessed it was a Radeon KMS issue.  Might be wrong.]

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

--
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel