diff options
Diffstat (limited to 'drivers/char/drm/via_dma.c')
-rw-r--r-- | drivers/char/drm/via_dma.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/char/drm/via_dma.c b/drivers/char/drm/via_dma.c index a691ae74129d..c0539c6299cf 100644 --- a/drivers/char/drm/via_dma.c +++ b/drivers/char/drm/via_dma.c | |||
@@ -190,6 +190,11 @@ static int via_initialize(drm_device_t * dev, | |||
190 | return DRM_ERR(EFAULT); | 190 | return DRM_ERR(EFAULT); |
191 | } | 191 | } |
192 | 192 | ||
193 | if (dev_priv->chipset == VIA_DX9_0) { | ||
194 | DRM_ERROR("AGP DMA is not supported on this chip\n"); | ||
195 | return DRM_ERR(EINVAL); | ||
196 | } | ||
197 | |||
193 | dev_priv->ring.map.offset = dev->agp->base + init->offset; | 198 | dev_priv->ring.map.offset = dev->agp->base + init->offset; |
194 | dev_priv->ring.map.size = init->size; | 199 | dev_priv->ring.map.size = init->size; |
195 | dev_priv->ring.map.type = 0; | 200 | dev_priv->ring.map.type = 0; |
@@ -480,6 +485,7 @@ static int via_hook_segment(drm_via_private_t * dev_priv, | |||
480 | VIA_WRITE(VIA_REG_TRANSET, (HC_ParaType_PreCR << 16)); | 485 | VIA_WRITE(VIA_REG_TRANSET, (HC_ParaType_PreCR << 16)); |
481 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_hi); | 486 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_hi); |
482 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_lo); | 487 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_lo); |
488 | VIA_READ(VIA_REG_TRANSPACE); | ||
483 | } | 489 | } |
484 | } | 490 | } |
485 | return paused; | 491 | return paused; |
@@ -557,8 +563,9 @@ static void via_cmdbuf_start(drm_via_private_t * dev_priv) | |||
557 | 563 | ||
558 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_hi); | 564 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_hi); |
559 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_lo); | 565 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_lo); |
560 | 566 | DRM_WRITEMEMORYBARRIER(); | |
561 | VIA_WRITE(VIA_REG_TRANSPACE, command | HC_HAGPCMNT_MASK); | 567 | VIA_WRITE(VIA_REG_TRANSPACE, command | HC_HAGPCMNT_MASK); |
568 | VIA_READ(VIA_REG_TRANSPACE); | ||
562 | } | 569 | } |
563 | 570 | ||
564 | static void via_pad_cache(drm_via_private_t * dev_priv, int qwords) | 571 | static void via_pad_cache(drm_via_private_t * dev_priv, int qwords) |