[PATCH 1/4] drm/radeon: make radeon_gpu_is_lockup a per ring function

2012-04-12 Thread Alex Deucher
2012/4/11 Christian K?nig :
> Different rings have different criteria to test
> if they are stuck.
>
> Signed-off-by: Christian K?nig 

For the series:

Reviewed-by: Alex Deucher 

> ---
> ?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 = _suspend,
> ? ? ? ?.resume = _resume,
> ? ? ? ?.vga_set_state = _vga_set_state,
> - ? ? ? .gpu_is_lockup = _gpu_is_lockup,
> ? ? ? ?.asic_reset = _asic_reset,
> ? ? ? ?.ioctl_wait_idle = NULL,
> ? ? ? ?.gui_idle = _gui_idle,
> @@ -152,6 +151,7 @@ static struct radeon_asic r100_asic = {
> ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = _ring_start,
> ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = _ring_test,
> ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = _ib_test,
> + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = _gpu_is_lockup,
> ? ? ? ? ? ? ? ?}
> ? ? ? ?},
> ? ? ? ?.irq = {
> @@ -208,7 +208,6 @@ static struct radeon_asic r200_asic = {
> ? ? ? ?.suspend = _suspend,
> ? ? ? ?.resume = _resume,
> ? ? ? ?.vga_set_state = _vga_set_state,
> - ? ? ? .gpu_is_lockup = _gpu_is_lockup,
> ? ? ? ?.asic_reset = _asic_reset,
> ? ? ? ?.ioctl_wait_idle = NULL,
> ? ? ? ?.gui_idle = _gui_idle,
> @@ -226,6 +225,7 @@ static struct radeon_asic r200_asic = {
> ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = _ring_start,
> ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = _ring_test,
> ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = _ib_test,
> + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = _gpu_is_lockup,
> ? ? ? ? ? ? ? ?}
> ? ? ? ?},
> ? ? ? ?.irq = {
> @@ -282,7 +282,6 @@ static struct radeon_asic r300_asic = {
> ? ? ? ?.suspend = _suspend,
> ? ? ? ?.resume = _resume,
> ? ? ? ?.vga_set_state = _vga_set_state,
> - ? ? ? .gpu_is_lockup = _gpu_is_lockup,
> ? ? ? ?.asic_reset = _asic_reset,
> ? ? ? ?.ioctl_wait_idle = NULL,
> ? ? ? ?.gui_idle = _gui_idle,
> @@ -300,6 +299,7 @@ static struct radeon_asic r300_asic = {
> ? ? ? ? ? ? ? ? ? ? ? ?.ring_start = _ring_start,
> ? ? ? ? ? ? ? ? ? ? ? ?.ring_test = _ring_test,
> ? ? ? ? ? ? ? ? ? ? ? ?.ib_test = _ib_test,
> + ? ? ? ? ? ? ? ? ? ? ? .is_lockup = 

Re: [PATCH 1/4] drm/radeon: make radeon_gpu_is_lockup a per ring function

2012-04-12 Thread Alex Deucher
2012/4/11 Christian König deathsim...@vodafone.de:
 Different rings have different criteria to test
 if they are stuck.

 Signed-off-by: Christian König deathsim...@vodafone.de

For the series:

Reviewed-by: Alex Deucher alexander.deuc...@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,
 + 

[PATCH 1/4] drm/radeon: make radeon_gpu_is_lockup a per ring function

2012-04-11 Thread Christian König
Different rings have different criteria to test
if they are stuck.

Signed-off-by: Christian K?nig 
---
 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 = _suspend,
.resume = _resume,
.vga_set_state = _vga_set_state,
-   .gpu_is_lockup = _gpu_is_lockup,
.asic_reset = _asic_reset,
.ioctl_wait_idle = NULL,
.gui_idle = _gui_idle,
@@ -152,6 +151,7 @@ static struct radeon_asic r100_asic = {
.ring_start = _ring_start,
.ring_test = _ring_test,
.ib_test = _ib_test,
+   .is_lockup = _gpu_is_lockup,
}
},
.irq = {
@@ -208,7 +208,6 @@ static struct radeon_asic r200_asic = {
.suspend = _suspend,
.resume = _resume,
.vga_set_state = _vga_set_state,
-   .gpu_is_lockup = _gpu_is_lockup,
.asic_reset = _asic_reset,
.ioctl_wait_idle = NULL,
.gui_idle = _gui_idle,
@@ -226,6 +225,7 @@ static struct radeon_asic r200_asic = {
.ring_start = _ring_start,
.ring_test = _ring_test,
.ib_test = _ib_test,
+   .is_lockup = _gpu_is_lockup,
}
},
.irq = {
@@ -282,7 +282,6 @@ static struct radeon_asic r300_asic = {
.suspend = _suspend,
.resume = _resume,
.vga_set_state = _vga_set_state,
-   .gpu_is_lockup = _gpu_is_lockup,
.asic_reset = _asic_reset,
.ioctl_wait_idle = NULL,
.gui_idle = _gui_idle,
@@ -300,6 +299,7 @@ static struct radeon_asic r300_asic = {
.ring_start = _ring_start,
.ring_test = _ring_test,
.ib_test = _ib_test,
+   .is_lockup = _gpu_is_lockup,
}
},
.irq = {
@@ -356,7 +356,6 @@ static struct radeon_asic r300_asic_pcie = {
.suspend = _suspend,
.resume = _resume,
.vga_set_state = _vga_set_state,
-   .gpu_is_lockup = 

[PATCH 1/4] drm/radeon: make radeon_gpu_is_lockup a per ring function

2012-04-11 Thread Christian König
Different rings have different criteria to test
if they are stuck.

Signed-off-by: Christian König deathsim...@vodafone.de
---
 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 =