diff options
-rw-r--r-- | drivers/char/drm/via_dma.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/char/drm/via_dma.c b/drivers/char/drm/via_dma.c index 7635e859b879..13a9c5ca4593 100644 --- a/drivers/char/drm/via_dma.c +++ b/drivers/char/drm/via_dma.c | |||
@@ -436,8 +436,10 @@ static int via_hook_segment(drm_via_private_t * dev_priv, | |||
436 | 436 | ||
437 | paused = 0; | 437 | paused = 0; |
438 | via_flush_write_combine(); | 438 | via_flush_write_combine(); |
439 | *dev_priv->last_pause_ptr = pause_addr_lo; | 439 | (void) *(volatile uint32_t *)(via_get_dma(dev_priv) -1); |
440 | *paused_at = pause_addr_lo; | ||
440 | via_flush_write_combine(); | 441 | via_flush_write_combine(); |
442 | (void) *paused_at; | ||
441 | reader = *(dev_priv->hw_addr_ptr); | 443 | reader = *(dev_priv->hw_addr_ptr); |
442 | ptr = ((volatile char *)paused_at - dev_priv->dma_ptr) + | 444 | ptr = ((volatile char *)paused_at - dev_priv->dma_ptr) + |
443 | dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr + 4; | 445 | dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr + 4; |
@@ -536,7 +538,7 @@ static void via_cmdbuf_start(drm_via_private_t * dev_priv) | |||
536 | &pause_addr_hi, &pause_addr_lo, 1) - 1; | 538 | &pause_addr_hi, &pause_addr_lo, 1) - 1; |
537 | 539 | ||
538 | via_flush_write_combine(); | 540 | via_flush_write_combine(); |
539 | while(! *dev_priv->last_pause_ptr); | 541 | (void) *(volatile uint32_t *)dev_priv->last_pause_ptr; |
540 | 542 | ||
541 | VIA_WRITE(VIA_REG_TRANSET, (HC_ParaType_PreCR << 16)); | 543 | VIA_WRITE(VIA_REG_TRANSET, (HC_ParaType_PreCR << 16)); |
542 | VIA_WRITE(VIA_REG_TRANSPACE, command); | 544 | VIA_WRITE(VIA_REG_TRANSPACE, command); |