|
@@ -188,6 +188,9 @@ irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS)
|
|
u32 stat;
|
|
u32 stat;
|
|
u32 r500_disp_int;
|
|
u32 r500_disp_int;
|
|
|
|
|
|
|
|
+ if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
|
|
|
|
+ return IRQ_NONE;
|
|
|
|
+
|
|
/* Only consider the bits we're interested in - others could be used
|
|
/* Only consider the bits we're interested in - others could be used
|
|
* outside the DRM
|
|
* outside the DRM
|
|
*/
|
|
*/
|
|
@@ -286,6 +289,9 @@ int radeon_irq_emit(struct drm_device *dev, void *data, struct drm_file *file_pr
|
|
drm_radeon_irq_emit_t *emit = data;
|
|
drm_radeon_irq_emit_t *emit = data;
|
|
int result;
|
|
int result;
|
|
|
|
|
|
|
|
+ if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
LOCK_TEST_WITH_RETURN(dev, file_priv);
|
|
LOCK_TEST_WITH_RETURN(dev, file_priv);
|
|
|
|
|
|
if (!dev_priv) {
|
|
if (!dev_priv) {
|
|
@@ -315,6 +321,9 @@ int radeon_irq_wait(struct drm_device *dev, void *data, struct drm_file *file_pr
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
|
|
|
|
+ return -EINVAL;
|
|
|
|
+
|
|
return radeon_wait_irq(dev, irqwait->irq_seq);
|
|
return radeon_wait_irq(dev, irqwait->irq_seq);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -326,6 +335,9 @@ void radeon_driver_irq_preinstall(struct drm_device * dev)
|
|
(drm_radeon_private_t *) dev->dev_private;
|
|
(drm_radeon_private_t *) dev->dev_private;
|
|
u32 dummy;
|
|
u32 dummy;
|
|
|
|
|
|
|
|
+ if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
|
|
|
|
+ return;
|
|
|
|
+
|
|
/* Disable *all* interrupts */
|
|
/* Disable *all* interrupts */
|
|
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
|
|
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
|
|
RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
|
|
RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
|
|
@@ -345,6 +357,9 @@ int radeon_driver_irq_postinstall(struct drm_device *dev)
|
|
|
|
|
|
dev->max_vblank_count = 0x001fffff;
|
|
dev->max_vblank_count = 0x001fffff;
|
|
|
|
|
|
|
|
+ if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
|
|
radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
@@ -357,6 +372,9 @@ void radeon_driver_irq_uninstall(struct drm_device * dev)
|
|
if (!dev_priv)
|
|
if (!dev_priv)
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
+ if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
|
|
|
|
+ return;
|
|
|
|
+
|
|
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
|
|
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RS600)
|
|
RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
|
|
RADEON_WRITE(R500_DxMODE_INT_MASK, 0);
|
|
/* Disable *all* interrupts */
|
|
/* Disable *all* interrupts */
|