2012/4/11 Christian K?nig <deathsimple at vodafone.de>: > Different rings have different criteria to test > if they are stuck. > > Signed-off-by: Christian K?nig <deathsimple at vodafone.de>
For the series: Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > ?drivers/gpu/drm/radeon/radeon.h ? ? ? | ? ?4 +- > ?drivers/gpu/drm/radeon/radeon_asic.c ?| ? 36 +++++++++++++++++--------------- > ?drivers/gpu/drm/radeon/radeon_fence.c | ? ?2 +- > ?3 files changed, 22 insertions(+), 20 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h > index d2870a0..4ee9a1a 100644 > --- a/drivers/gpu/drm/radeon/radeon.h > +++ b/drivers/gpu/drm/radeon/radeon.h > @@ -1128,7 +1128,6 @@ struct radeon_asic { > ? ? ? ?int (*resume)(struct radeon_device *rdev); > ? ? ? ?int (*suspend)(struct radeon_device *rdev); > ? ? ? ?void (*vga_set_state)(struct radeon_device *rdev, bool state); > - ? ? ? bool (*gpu_is_lockup)(struct radeon_device *rdev, struct radeon_ring > *cp); > ? ? ? ?int (*asic_reset)(struct radeon_device *rdev); > ? ? ? ?/* ioctl hw specific callback. Some hw might want to perform special > ? ? ? ? * operation on specific ioctl. For instance on wait idle some hw > @@ -1157,6 +1156,7 @@ struct radeon_asic { > ? ? ? ? ? ? ? ?void (*ring_start)(struct radeon_device *rdev, struct > radeon_ring *cp); > ? ? ? ? ? ? ? ?int (*ring_test)(struct radeon_device *rdev, struct > radeon_ring *cp); > ? ? ? ? ? ? ? ?int (*ib_test)(struct radeon_device *rdev, struct radeon_ring > *cp); > + ? ? ? ? ? ? ? bool (*is_lockup)(struct radeon_device *rdev, struct > radeon_ring *cp); > ? ? ? ?} ring[RADEON_NUM_RINGS]; > ? ? ? ?/* irqs */ > ? ? ? ?struct { > @@ -1677,7 +1677,6 @@ void radeon_ring_write(struct radeon_ring *ring, > uint32_t v); > ?#define radeon_suspend(rdev) (rdev)->asic->suspend((rdev)) > ?#define radeon_cs_parse(rdev, r, p) (rdev)->asic->ring[(r)].cs_parse((p)) > ?#define radeon_vga_set_state(rdev, state) > (rdev)->asic->vga_set_state((rdev), (state)) > -#define radeon_gpu_is_lockup(rdev, cp) (rdev)->asic->gpu_is_lockup((rdev), > (cp)) > ?#define radeon_asic_reset(rdev) (rdev)->asic->asic_reset((rdev)) > ?#define radeon_gart_tlb_flush(rdev) (rdev)->asic->gart.tlb_flush((rdev)) > ?#define radeon_gart_set_page(rdev, i, p) (rdev)->asic->gart.set_page((rdev), > (i), (p)) > @@ -1686,6 +1685,7 @@ void radeon_ring_write(struct radeon_ring *ring, > uint32_t v); > ?#define radeon_ib_test(rdev, r, cp) (rdev)->asic->ring[(r)].ib_test((rdev), > (cp)) > ?#define radeon_ring_ib_execute(rdev, r, ib) > (rdev)->asic->ring[(r)].ib_execute((rdev), (ib)) > ?#define radeon_ring_ib_parse(rdev, r, ib) > (rdev)->asic->ring[(r)].ib_parse((rdev), (ib)) > +#define radeon_ring_is_lockup(rdev, r, cp) > (rdev)->asic->ring[(r)].is_lockup((rdev), (cp)) > ?#define radeon_irq_set(rdev) (rdev)->asic->irq.set((rdev)) > ?#define radeon_irq_process(rdev) (rdev)->asic->irq.process((rdev)) > ?#define radeon_get_vblank_counter(rdev, crtc) > (rdev)->asic->display.get_vblank_counter((rdev), (crtc)) > diff --git a/drivers/gpu/drm/radeon/radeon_asic.c > b/drivers/gpu/drm/radeon/radeon_asic.c > index 479c89e..a99fc2b 100644 > --- a/drivers/gpu/drm/radeon/radeon_asic.c > +++ b/drivers/gpu/drm/radeon/radeon_asic.c > @@ -134,7 +134,6 @@ static struct radeon_asic r100_asic = { > ? ? ? ?.suspend = &r100_suspend, > ? ? ? ?.resume = &r100_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r100_gpu_is_lockup, > ? ? ? ?.asic_reset = &r100_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -152,6 +151,7 @@ static struct radeon_asic r100_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r100_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r100_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -208,7 +208,6 @@ static struct radeon_asic r200_asic = { > ? ? ? ?.suspend = &r100_suspend, > ? ? ? ?.resume = &r100_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r100_gpu_is_lockup, > ? ? ? ?.asic_reset = &r100_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -226,6 +225,7 @@ static struct radeon_asic r200_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r100_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r100_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -282,7 +282,6 @@ static struct radeon_asic r300_asic = { > ? ? ? ?.suspend = &r300_suspend, > ? ? ? ?.resume = &r300_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &r300_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -300,6 +299,7 @@ static struct radeon_asic r300_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r300_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -356,7 +356,6 @@ static struct radeon_asic r300_asic_pcie = { > ? ? ? ?.suspend = &r300_suspend, > ? ? ? ?.resume = &r300_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &r300_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -374,6 +373,7 @@ static struct radeon_asic r300_asic_pcie = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r300_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -430,7 +430,6 @@ static struct radeon_asic r420_asic = { > ? ? ? ?.suspend = &r420_suspend, > ? ? ? ?.resume = &r420_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &r300_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -448,6 +447,7 @@ static struct radeon_asic r420_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r300_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -504,7 +504,6 @@ static struct radeon_asic rs400_asic = { > ? ? ? ?.suspend = &rs400_suspend, > ? ? ? ?.resume = &rs400_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &r300_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -522,6 +521,7 @@ static struct radeon_asic rs400_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r300_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -578,7 +578,6 @@ static struct radeon_asic rs600_asic = { > ? ? ? ?.suspend = &rs600_suspend, > ? ? ? ?.resume = &rs600_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &rs600_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -596,6 +595,7 @@ static struct radeon_asic rs600_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r300_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -652,7 +652,6 @@ static struct radeon_asic rs690_asic = { > ? ? ? ?.suspend = &rs690_suspend, > ? ? ? ?.resume = &rs690_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &rs600_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -670,6 +669,7 @@ static struct radeon_asic rs690_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &r300_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -726,7 +726,6 @@ static struct radeon_asic rv515_asic = { > ? ? ? ?.suspend = &rv515_suspend, > ? ? ? ?.resume = &rv515_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &rs600_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -744,6 +743,7 @@ static struct radeon_asic rv515_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &rv515_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -800,7 +800,6 @@ static struct radeon_asic r520_asic = { > ? ? ? ?.suspend = &rv515_suspend, > ? ? ? ?.resume = &r520_resume, > ? ? ? ?.vga_set_state = &r100_vga_set_state, > - ? ? ? .gpu_is_lockup = &r300_gpu_is_lockup, > ? ? ? ?.asic_reset = &rs600_asic_reset, > ? ? ? ?.ioctl_wait_idle = NULL, > ? ? ? ?.gui_idle = &r100_gui_idle, > @@ -818,6 +817,7 @@ static struct radeon_asic r520_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = &rv515_ring_start, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r100_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r100_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r300_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -874,7 +874,6 @@ static struct radeon_asic r600_asic = { > ? ? ? ?.suspend = &r600_suspend, > ? ? ? ?.resume = &r600_resume, > ? ? ? ?.vga_set_state = &r600_vga_set_state, > - ? ? ? .gpu_is_lockup = &r600_gpu_is_lockup, > ? ? ? ?.asic_reset = &r600_asic_reset, > ? ? ? ?.ioctl_wait_idle = r600_ioctl_wait_idle, > ? ? ? ?.gui_idle = &r600_gui_idle, > @@ -891,6 +890,7 @@ static struct radeon_asic r600_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &r600_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r600_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -946,7 +946,6 @@ static struct radeon_asic rs780_asic = { > ? ? ? ?.fini = &r600_fini, > ? ? ? ?.suspend = &r600_suspend, > ? ? ? ?.resume = &r600_resume, > - ? ? ? .gpu_is_lockup = &r600_gpu_is_lockup, > ? ? ? ?.vga_set_state = &r600_vga_set_state, > ? ? ? ?.asic_reset = &r600_asic_reset, > ? ? ? ?.ioctl_wait_idle = r600_ioctl_wait_idle, > @@ -964,6 +963,7 @@ static struct radeon_asic rs780_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &r600_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r600_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -1020,7 +1020,6 @@ static struct radeon_asic rv770_asic = { > ? ? ? ?.suspend = &rv770_suspend, > ? ? ? ?.resume = &rv770_resume, > ? ? ? ?.asic_reset = &r600_asic_reset, > - ? ? ? .gpu_is_lockup = &r600_gpu_is_lockup, > ? ? ? ?.vga_set_state = &r600_vga_set_state, > ? ? ? ?.ioctl_wait_idle = r600_ioctl_wait_idle, > ? ? ? ?.gui_idle = &r600_gui_idle, > @@ -1037,6 +1036,7 @@ static struct radeon_asic rv770_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &r600_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &r600_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -1092,7 +1092,6 @@ static struct radeon_asic evergreen_asic = { > ? ? ? ?.fini = &evergreen_fini, > ? ? ? ?.suspend = &evergreen_suspend, > ? ? ? ?.resume = &evergreen_resume, > - ? ? ? .gpu_is_lockup = &evergreen_gpu_is_lockup, > ? ? ? ?.asic_reset = &evergreen_asic_reset, > ? ? ? ?.vga_set_state = &r600_vga_set_state, > ? ? ? ?.ioctl_wait_idle = r600_ioctl_wait_idle, > @@ -1110,6 +1109,7 @@ static struct radeon_asic evergreen_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &evergreen_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &evergreen_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -1165,7 +1165,6 @@ static struct radeon_asic sumo_asic = { > ? ? ? ?.fini = &evergreen_fini, > ? ? ? ?.suspend = &evergreen_suspend, > ? ? ? ?.resume = &evergreen_resume, > - ? ? ? .gpu_is_lockup = &evergreen_gpu_is_lockup, > ? ? ? ?.asic_reset = &evergreen_asic_reset, > ? ? ? ?.vga_set_state = &r600_vga_set_state, > ? ? ? ?.ioctl_wait_idle = r600_ioctl_wait_idle, > @@ -1183,6 +1182,7 @@ static struct radeon_asic sumo_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &evergreen_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &evergreen_gpu_is_lockup, > ? ? ? ? ? ? ? ?}, > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -1238,7 +1238,6 @@ static struct radeon_asic btc_asic = { > ? ? ? ?.fini = &evergreen_fini, > ? ? ? ?.suspend = &evergreen_suspend, > ? ? ? ?.resume = &evergreen_resume, > - ? ? ? .gpu_is_lockup = &evergreen_gpu_is_lockup, > ? ? ? ?.asic_reset = &evergreen_asic_reset, > ? ? ? ?.vga_set_state = &r600_vga_set_state, > ? ? ? ?.ioctl_wait_idle = r600_ioctl_wait_idle, > @@ -1256,6 +1255,7 @@ static struct radeon_asic btc_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &evergreen_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &evergreen_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > @@ -1321,7 +1321,6 @@ static struct radeon_asic cayman_asic = { > ? ? ? ?.fini = &cayman_fini, > ? ? ? ?.suspend = &cayman_suspend, > ? ? ? ?.resume = &cayman_resume, > - ? ? ? .gpu_is_lockup = &cayman_gpu_is_lockup, > ? ? ? ?.asic_reset = &cayman_asic_reset, > ? ? ? ?.vga_set_state = &r600_vga_set_state, > ? ? ? ?.ioctl_wait_idle = r600_ioctl_wait_idle, > @@ -1340,6 +1339,7 @@ static struct radeon_asic cayman_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &evergreen_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &cayman_gpu_is_lockup, > ? ? ? ? ? ? ? ?}, > ? ? ? ? ? ? ? ?[CAYMAN_RING_TYPE_CP1_INDEX] = { > ? ? ? ? ? ? ? ? ? ? ? ?.ib_execute = &cayman_ring_ib_execute, > @@ -1349,6 +1349,7 @@ static struct radeon_asic cayman_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &evergreen_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &cayman_gpu_is_lockup, > ? ? ? ? ? ? ? ?}, > ? ? ? ? ? ? ? ?[CAYMAN_RING_TYPE_CP2_INDEX] = { > ? ? ? ? ? ? ? ? ? ? ? ?.ib_execute = &cayman_ring_ib_execute, > @@ -1358,6 +1359,7 @@ static struct radeon_asic cayman_asic = { > ? ? ? ? ? ? ? ? ? ? ? ?.cs_parse = &evergreen_cs_parse, > ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = &r600_ring_test, > ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = &r600_ib_test, > + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = &cayman_gpu_is_lockup, > ? ? ? ? ? ? ? ?} > ? ? ? ?}, > ? ? ? ?.irq = { > diff --git a/drivers/gpu/drm/radeon/radeon_fence.c > b/drivers/gpu/drm/radeon/radeon_fence.c > index 4bd36a3..66b2229 100644 > --- a/drivers/gpu/drm/radeon/radeon_fence.c > +++ b/drivers/gpu/drm/radeon/radeon_fence.c > @@ -259,7 +259,7 @@ retry: > ? ? ? ? ? ? ? ? * if we experiencing a lockup the value doesn't change > ? ? ? ? ? ? ? ? */ > ? ? ? ? ? ? ? ?if (seq == rdev->fence_drv[fence->ring].last_seq && > - ? ? ? ? ? ? ? ? ? radeon_gpu_is_lockup(rdev, &rdev->ring[fence->ring])) { > + ? ? ? ? ? ? ? ? ? radeon_ring_is_lockup(rdev, fence->ring, > &rdev->ring[fence->ring])) { > ? ? ? ? ? ? ? ? ? ? ? ?/* good news we believe it's a lockup */ > ? ? ? ? ? ? ? ? ? ? ? ?printk(KERN_WARNING "GPU lockup (waiting for 0x%08X > last fence id 0x%08X)\n", > ? ? ? ? ? ? ? ? ? ? ? ? ? ? fence->seq, seq); > -- > 1.7.5.4 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel