* radeon error on resume: "cp failed to get scratch reg" - anyone interested? @ 2012-09-17 13:06 Simon Kitching 2012-09-19 9:12 ` Michel Dänzer 0 siblings, 1 reply; 5+ messages in thread From: Simon Kitching @ 2012-09-17 13:06 UTC (permalink / raw) To: dri-devel Hi, I've noticed that on resume from suspend, dmesg reports: [21895.997536] [drm] radeon: 1 quad pipes, 2 z pipes initialized. [21896.012072] [drm] PCIE GART of 512M enabled (table at 0x0000000000040000). [21896.012082] radeon 0000:01:00.0: WB enabled [21896.012085] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000010000000 and cpu addr 0xffccb000 [21896.012138] [drm] radeon: ring at 0x0000000010001000 [21896.012157] [drm:r100_ring_test] *ERROR* radeon: cp failed to get scratch reg (-22). [21896.012158] [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22). [21896.012160] radeon 0000:01:00.0: failed initializing CP (-22). Graphics still seems to work fine though. Is this info of interest to anyone? I'm happy to do additional testing if that is useful. System: Radeon Mobility X1600 RV530 (about 5 year old laptop), kernel 3.6.0-rc5+ 32-bit Cheers, Simon ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: radeon error on resume: "cp failed to get scratch reg" - anyone interested? 2012-09-17 13:06 radeon error on resume: "cp failed to get scratch reg" - anyone interested? Simon Kitching @ 2012-09-19 9:12 ` Michel Dänzer 2012-09-20 6:54 ` Simon Kitching 0 siblings, 1 reply; 5+ messages in thread From: Michel Dänzer @ 2012-09-19 9:12 UTC (permalink / raw) To: Simon Kitching; +Cc: dri-devel On Mon, 2012-09-17 at 15:06 +0200, Simon Kitching wrote: > Hi, > > I've noticed that on resume from suspend, dmesg reports: > > [21895.997536] [drm] radeon: 1 quad pipes, 2 z pipes initialized. > [21896.012072] [drm] PCIE GART of 512M enabled (table at > 0x0000000000040000). > [21896.012082] radeon 0000:01:00.0: WB enabled > [21896.012085] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr > 0x0000000010000000 and cpu addr 0xffccb000 > [21896.012138] [drm] radeon: ring at 0x0000000010001000 > [21896.012157] [drm:r100_ring_test] *ERROR* radeon: cp failed to get > scratch reg (-22). > [21896.012158] [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22). > [21896.012160] radeon 0000:01:00.0: failed initializing CP (-22). > > Graphics still seems to work fine though. > > Is this info of interest to anyone? I'm happy to do additional testing > if that is useful. Does the patch below fix the failure to get a scratch register? >From 6780dca112752e1fc4e7d410441b39874565b754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com> Date: Wed, 19 Sep 2012 11:09:14 +0200 Subject: [PATCH] drm/radeon: Fix scratch register leak in IB test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restructure the code to jump out via labels instead of directly returning early. --- drivers/gpu/drm/radeon/r100.c | 12 ++++++------ drivers/gpu/drm/radeon/r600.c | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 8acb34f..819c352 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c @@ -3818,7 +3818,7 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) WREG32(scratch, 0xCAFEDEAD); r = radeon_ib_get(rdev, RADEON_RING_TYPE_GFX_INDEX, &ib, 256); if (r) { - return r; + goto free_scratch; } ib.ptr[0] = PACKET0(scratch, 0); ib.ptr[1] = 0xDEADBEEF; @@ -3831,13 +3831,11 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) ib.length_dw = 8; r = radeon_ib_schedule(rdev, &ib, NULL); if (r) { - radeon_scratch_free(rdev, scratch); - radeon_ib_free(rdev, &ib); - return r; + goto free_ib; } r = radeon_fence_wait(ib.fence, false); if (r) { - return r; + goto free_ib; } for (i = 0; i < rdev->usec_timeout; i++) { tmp = RREG32(scratch); @@ -3853,8 +3851,10 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) scratch, tmp); r = -EINVAL; } - radeon_scratch_free(rdev, scratch); +free_ib: radeon_ib_free(rdev, &ib); +free_scratch: + radeon_scratch_free(rdev, scratch); return r; } diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index d79c639..38b546e 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -2638,7 +2638,7 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) r = radeon_ib_get(rdev, ring->idx, &ib, 256); if (r) { DRM_ERROR("radeon: failed to get ib (%d).\n", r); - return r; + goto free_scratch; } ib.ptr[0] = PACKET3(PACKET3_SET_CONFIG_REG, 1); ib.ptr[1] = ((scratch - PACKET3_SET_CONFIG_REG_OFFSET) >> 2); @@ -2646,15 +2646,13 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) ib.length_dw = 3; r = radeon_ib_schedule(rdev, &ib, NULL); if (r) { - radeon_scratch_free(rdev, scratch); - radeon_ib_free(rdev, &ib); DRM_ERROR("radeon: failed to schedule ib (%d).\n", r); - return r; + goto free_ib; } r = radeon_fence_wait(ib.fence, false); if (r) { DRM_ERROR("radeon: fence wait failed (%d).\n", r); - return r; + goto free_ib; } for (i = 0; i < rdev->usec_timeout; i++) { tmp = RREG32(scratch); @@ -2669,8 +2667,10 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) scratch, tmp); r = -EINVAL; } - radeon_scratch_free(rdev, scratch); +free_ib: radeon_ib_free(rdev, &ib); +free_scratch: + radeon_scratch_free(rdev, scratch); return r; } -- 1.7.10.4 -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: radeon error on resume: "cp failed to get scratch reg" - anyone interested? 2012-09-19 9:12 ` Michel Dänzer @ 2012-09-20 6:54 ` Simon Kitching 2012-09-20 8:09 ` Re: radeon error on resume: "cp failed to get scratch reg" - anyoneinterested? deathsimple 2012-09-20 9:06 ` radeon error on resume: "cp failed to get scratch reg" - anyone interested? Michel Dänzer 0 siblings, 2 replies; 5+ messages in thread From: Simon Kitching @ 2012-09-20 6:54 UTC (permalink / raw) To: Michel Dänzer; +Cc: dri-devel On 19/09/12 11:12, Michel Dänzer wrote: > On Mon, 2012-09-17 at 15:06 +0200, Simon Kitching wrote: >> Hi, >> >> I've noticed that on resume from suspend, dmesg reports: >> >> [21895.997536] [drm] radeon: 1 quad pipes, 2 z pipes initialized. >> [21896.012072] [drm] PCIE GART of 512M enabled (table at >> 0x0000000000040000). >> [21896.012082] radeon 0000:01:00.0: WB enabled >> [21896.012085] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr >> 0x0000000010000000 and cpu addr 0xffccb000 >> [21896.012138] [drm] radeon: ring at 0x0000000010001000 >> [21896.012157] [drm:r100_ring_test] *ERROR* radeon: cp failed to get >> scratch reg (-22). >> [21896.012158] [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22). >> [21896.012160] radeon 0000:01:00.0: failed initializing CP (-22). >> >> Graphics still seems to work fine though. >> >> Is this info of interest to anyone? I'm happy to do additional testing >> if that is useful. > Does the patch below fix the failure to get a scratch register? > > > From 6780dca112752e1fc4e7d410441b39874565b754 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com> > Date: Wed, 19 Sep 2012 11:09:14 +0200 > Subject: [PATCH] drm/radeon: Fix scratch register leak in IB test. > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > Restructure the code to jump out via labels instead of directly returning > early. > --- > drivers/gpu/drm/radeon/r100.c | 12 ++++++------ > drivers/gpu/drm/radeon/r600.c | 12 ++++++------ > 2 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c > index 8acb34f..819c352 100644 > --- a/drivers/gpu/drm/radeon/r100.c > +++ b/drivers/gpu/drm/radeon/r100.c > @@ -3818,7 +3818,7 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > WREG32(scratch, 0xCAFEDEAD); > r = radeon_ib_get(rdev, RADEON_RING_TYPE_GFX_INDEX, &ib, 256); > if (r) { > - return r; > + goto free_scratch; > } > ib.ptr[0] = PACKET0(scratch, 0); > ib.ptr[1] = 0xDEADBEEF; > @@ -3831,13 +3831,11 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > ib.length_dw = 8; > r = radeon_ib_schedule(rdev, &ib, NULL); > if (r) { > - radeon_scratch_free(rdev, scratch); > - radeon_ib_free(rdev, &ib); > - return r; > + goto free_ib; > } > r = radeon_fence_wait(ib.fence, false); > if (r) { > - return r; > + goto free_ib; > } > for (i = 0; i < rdev->usec_timeout; i++) { > tmp = RREG32(scratch); > @@ -3853,8 +3851,10 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > scratch, tmp); > r = -EINVAL; > } > - radeon_scratch_free(rdev, scratch); > +free_ib: > radeon_ib_free(rdev, &ib); > +free_scratch: > + radeon_scratch_free(rdev, scratch); > return r; > } > > diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c > index d79c639..38b546e 100644 > --- a/drivers/gpu/drm/radeon/r600.c > +++ b/drivers/gpu/drm/radeon/r600.c > @@ -2638,7 +2638,7 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > r = radeon_ib_get(rdev, ring->idx, &ib, 256); > if (r) { > DRM_ERROR("radeon: failed to get ib (%d).\n", r); > - return r; > + goto free_scratch; > } > ib.ptr[0] = PACKET3(PACKET3_SET_CONFIG_REG, 1); > ib.ptr[1] = ((scratch - PACKET3_SET_CONFIG_REG_OFFSET) >> 2); > @@ -2646,15 +2646,13 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > ib.length_dw = 3; > r = radeon_ib_schedule(rdev, &ib, NULL); > if (r) { > - radeon_scratch_free(rdev, scratch); > - radeon_ib_free(rdev, &ib); > DRM_ERROR("radeon: failed to schedule ib (%d).\n", r); > - return r; > + goto free_ib; > } > r = radeon_fence_wait(ib.fence, false); > if (r) { > DRM_ERROR("radeon: fence wait failed (%d).\n", r); > - return r; > + goto free_ib; > } > for (i = 0; i < rdev->usec_timeout; i++) { > tmp = RREG32(scratch); > @@ -2669,8 +2667,10 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > scratch, tmp); > r = -EINVAL; > } > - radeon_scratch_free(rdev, scratch); > +free_ib: > radeon_ib_free(rdev, &ib); > +free_scratch: > + radeon_scratch_free(rdev, scratch); > return r; > } > Sadly the patch does not fix the issue. However I agree that this patch is a good thing - the original code does clearly leak scratch registers in some failure conditions. Maybe this patch could also add the DRM_ERROR calls for these error cases from the r600 version into the r100 version? Note that on failure of radeon_ib_schedule, the order of resource releases *was* radeon_scratch_free radeon_ib_free and with this patch is: radeon_ib_free radeon_scratch_free This change looks correct to me, ie post-patch the frees are in reverse order to original allocation. If you do submit this patch, please add "reviewed-by skitching@vonos.net" or "tested-by" or whatever you think the appropriate tag is. Thanks to this patch pointing me to the appropriate area, I have actually found the real cause of the scratch-register leak, and will post a candidate patch today. Regards,Simon ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: radeon error on resume: "cp failed to get scratch reg" - anyoneinterested? 2012-09-20 6:54 ` Simon Kitching @ 2012-09-20 8:09 ` deathsimple 2012-09-20 9:06 ` radeon error on resume: "cp failed to get scratch reg" - anyone interested? Michel Dänzer 1 sibling, 0 replies; 5+ messages in thread From: deathsimple @ 2012-09-20 8:09 UTC (permalink / raw) To: Simon Kitching, Michel Dänzer; +Cc: dri-devel ---------------------------------------------------------------------- From: "Simon Kitching" <skitching@vonos.net> To: "Michel Dänzer" <michel@daenzer.net> Date: Thu, 20 Sep 2012 09:38:56 +0200 Subject: Re: radeon error on resume: "cp failed to get scratch reg" - anyoneinterested? > On 19/09/12 11:12, Michel Dänzer wrote: > > On Mon, 2012-09-17 at 15:06 +0200, Simon Kitching wrote: > >> Hi, > >> > >> I've noticed that on resume from suspend, dmesg reports: > >> > >> [21895.997536] [drm] radeon: 1 quad pipes, 2 z pipes initialized. > >> [21896.012072] [drm] PCIE GART of 512M enabled (table at > >> 0x0000000000040000). > >> [21896.012082] radeon 0000:01:00.0: WB enabled > >> [21896.012085] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr > >> 0x0000000010000000 and cpu addr 0xffccb000 > >> [21896.012138] [drm] radeon: ring at 0x0000000010001000 > >> [21896.012157] [drm:r100_ring_test] *ERROR* radeon: cp failed to get > >> scratch reg (-22). > >> [21896.012158] [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22). > >> [21896.012160] radeon 0000:01:00.0: failed initializing CP (-22). > >> > >> Graphics still seems to work fine though. > >> > >> Is this info of interest to anyone? I'm happy to do additional testing > >> if that is useful. > > Does the patch below fix the failure to get a scratch register? > > > > > > From 6780dca112752e1fc4e7d410441b39874565b754 Mon Sep 17 00:00:00 2001 > > From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com> > > Date: Wed, 19 Sep 2012 11:09:14 +0200 > > Subject: [PATCH] drm/radeon: Fix scratch register leak in IB test. > > MIME-Version: 1.0 > > Content-Type: text/plain; charset=UTF-8 > > Content-Transfer-Encoding: 8bit > > > > Restructure the code to jump out via labels instead of directly returning > > early. > > --- > > drivers/gpu/drm/radeon/r100.c | 12 ++++++------ > > drivers/gpu/drm/radeon/r600.c | 12 ++++++------ > > 2 files changed, 12 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c > > index 8acb34f..819c352 100644 > > --- a/drivers/gpu/drm/radeon/r100.c > > +++ b/drivers/gpu/drm/radeon/r100.c > > @@ -3818,7 +3818,7 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > > WREG32(scratch, 0xCAFEDEAD); > > r = radeon_ib_get(rdev, RADEON_RING_TYPE_GFX_INDEX, &ib, 256); > > if (r) { > > - return r; > > + goto free_scratch; > > } > > ib.ptr[0] = PACKET0(scratch, 0); > > ib.ptr[1] = 0xDEADBEEF; > > @@ -3831,13 +3831,11 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > > ib.length_dw = 8; > > r = radeon_ib_schedule(rdev, &ib, NULL); > > if (r) { > > - radeon_scratch_free(rdev, scratch); > > - radeon_ib_free(rdev, &ib); > > - return r; > > + goto free_ib; > > } > > r = radeon_fence_wait(ib.fence, false); > > if (r) { > > - return r; > > + goto free_ib; > > } > > for (i = 0; i < rdev->usec_timeout; i++) { > > tmp = RREG32(scratch); > > @@ -3853,8 +3851,10 @@ int r100_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > > scratch, tmp); > > r = -EINVAL; > > } > > - radeon_scratch_free(rdev, scratch); > > +free_ib: > > radeon_ib_free(rdev, &ib); > > +free_scratch: > > + radeon_scratch_free(rdev, scratch); > > return r; > > } > > > > diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c > > index d79c639..38b546e 100644 > > --- a/drivers/gpu/drm/radeon/r600.c > > +++ b/drivers/gpu/drm/radeon/r600.c > > @@ -2638,7 +2638,7 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > > r = radeon_ib_get(rdev, ring->idx, &ib, 256); > > if (r) { > > DRM_ERROR("radeon: failed to get ib (%d).\n", r); > > - return r; > > + goto free_scratch; > > } > > ib.ptr[0] = PACKET3(PACKET3_SET_CONFIG_REG, 1); > > ib.ptr[1] = ((scratch - PACKET3_SET_CONFIG_REG_OFFSET) >> 2); > > @@ -2646,15 +2646,13 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > > ib.length_dw = 3; > > r = radeon_ib_schedule(rdev, &ib, NULL); > > if (r) { > > - radeon_scratch_free(rdev, scratch); > > - radeon_ib_free(rdev, &ib); > > DRM_ERROR("radeon: failed to schedule ib (%d).\n", r); > > - return r; > > + goto free_ib; > > } > > r = radeon_fence_wait(ib.fence, false); > > if (r) { > > DRM_ERROR("radeon: fence wait failed (%d).\n", r); > > - return r; > > + goto free_ib; > > } > > for (i = 0; i < rdev->usec_timeout; i++) { > > tmp = RREG32(scratch); > > @@ -2669,8 +2667,10 @@ int r600_ib_test(struct radeon_device *rdev, struct radeon_ring *ring) > > scratch, tmp); > > r = -EINVAL; > > } > > - radeon_scratch_free(rdev, scratch); > > +free_ib: > > radeon_ib_free(rdev, &ib); > > +free_scratch: > > + radeon_scratch_free(rdev, scratch); > > return r; > > } > > > Sadly the patch does not fix the issue. However I agree that this patch > is a good thing - the original code does clearly leak scratch registers > in some failure conditions. > > Maybe this patch could also add the DRM_ERROR calls for these error > cases from the r600 version into the r100 version? Sounds like a good idea to me. > > Note that on failure of radeon_ib_schedule, the order of resource > releases *was* > radeon_scratch_free > radeon_ib_free > and with this patch is: > radeon_ib_free > radeon_scratch_free > This change looks correct to me, ie post-patch the frees are in reverse > order to original allocation. The order doesn't really matter in that case, so the patch Michel proposed should do quite fine. So please add: Reviewed-by: Christian König <christian.koenig@amd.com> > > If you do submit this patch, please add "reviewed-by > skitching@vonos.net" or "tested-by" or whatever you think the > appropriate tag is. > > Thanks to this patch pointing me to the appropriate area, I have > actually found the real cause of the scratch-register leak, and will > post a candidate patch today. Sounds good, please post the patch, or at least a description of what is really going wrong here. Cheers, Christian. > > Regards,Simon > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: radeon error on resume: "cp failed to get scratch reg" - anyone interested? 2012-09-20 6:54 ` Simon Kitching 2012-09-20 8:09 ` Re: radeon error on resume: "cp failed to get scratch reg" - anyoneinterested? deathsimple @ 2012-09-20 9:06 ` Michel Dänzer 1 sibling, 0 replies; 5+ messages in thread From: Michel Dänzer @ 2012-09-20 9:06 UTC (permalink / raw) To: Simon Kitching; +Cc: dri-devel On Don, 2012-09-20 at 08:54 +0200, Simon Kitching wrote: > On 19/09/12 11:12, Michel Dänzer wrote: > > On Mon, 2012-09-17 at 15:06 +0200, Simon Kitching wrote: > >> Hi, > >> > >> I've noticed that on resume from suspend, dmesg reports: > >> > >> [21895.997536] [drm] radeon: 1 quad pipes, 2 z pipes initialized. > >> [21896.012072] [drm] PCIE GART of 512M enabled (table at > >> 0x0000000000040000). > >> [21896.012082] radeon 0000:01:00.0: WB enabled > >> [21896.012085] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr > >> 0x0000000010000000 and cpu addr 0xffccb000 > >> [21896.012138] [drm] radeon: ring at 0x0000000010001000 > >> [21896.012157] [drm:r100_ring_test] *ERROR* radeon: cp failed to get > >> scratch reg (-22). > >> [21896.012158] [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22). > >> [21896.012160] radeon 0000:01:00.0: failed initializing CP (-22). > >> > >> Graphics still seems to work fine though. > >> > >> Is this info of interest to anyone? I'm happy to do additional testing > >> if that is useful. > > Does the patch below fix the failure to get a scratch register? [...] > Sadly the patch does not fix the issue. However I agree that this patch > is a good thing - the original code does clearly leak scratch registers > in some failure conditions. > > Maybe this patch could also add the DRM_ERROR calls for these error > cases from the r600 version into the r100 version? Yeah, that's a good idea, done. > Note that on failure of radeon_ib_schedule, the order of resource > releases *was* > radeon_scratch_free > radeon_ib_free > and with this patch is: > radeon_ib_free > radeon_scratch_free > This change looks correct to me, ie post-patch the frees are in reverse > order to original allocation. Right, this is necessary for the new label exit structure to work. > If you do submit this patch, please add "reviewed-by > skitching@vonos.net" or "tested-by" or whatever you think the > appropriate tag is. I used the former, thanks for your (and Christian's) review! > Thanks to this patch pointing me to the appropriate area, I have > actually found the real cause of the scratch-register leak, and will > post a candidate patch today. Excellent, looking forward to it. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-09-20 9:06 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-09-17 13:06 radeon error on resume: "cp failed to get scratch reg" - anyone interested? Simon Kitching 2012-09-19 9:12 ` Michel Dänzer 2012-09-20 6:54 ` Simon Kitching 2012-09-20 8:09 ` Re: radeon error on resume: "cp failed to get scratch reg" - anyoneinterested? deathsimple 2012-09-20 9:06 ` radeon error on resume: "cp failed to get scratch reg" - anyone interested? Michel Dänzer
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.