[Bug 13446] resume after suspend-to-ram broken on Toshiba Satellite A100 with 2.6.30-rc8 (works in 2.6.28)
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.
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
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
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
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
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 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 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
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 ..."
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
>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
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
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 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
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 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
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