From: Thomas Hellstrom Date: Tue, 8 May 2007 05:48:39 +0000 (+1000) Subject: via: Make sure we flush write-combining using a follow-up read. X-Git-Tag: firefly_0821_release~29506^2 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ef68d295508d52e792abf70d4f84461104d33b9d;p=firefly-linux-kernel-4.4.55.git via: Make sure we flush write-combining using a follow-up read. Signed-off-by: Dave Airlie --- 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, paused = 0; via_flush_write_combine(); - *dev_priv->last_pause_ptr = pause_addr_lo; + (void) *(volatile uint32_t *)(via_get_dma(dev_priv) -1); + *paused_at = pause_addr_lo; via_flush_write_combine(); + (void) *paused_at; reader = *(dev_priv->hw_addr_ptr); ptr = ((volatile char *)paused_at - dev_priv->dma_ptr) + 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) &pause_addr_hi, &pause_addr_lo, 1) - 1; via_flush_write_combine(); - while(! *dev_priv->last_pause_ptr); + (void) *(volatile uint32_t *)dev_priv->last_pause_ptr; VIA_WRITE(VIA_REG_TRANSET, (HC_ParaType_PreCR << 16)); VIA_WRITE(VIA_REG_TRANSPACE, command);