Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef68d295 authored by Thomas Hellstrom's avatar Thomas Hellstrom Committed by Dave Airlie
Browse files

via: Make sure we flush write-combining using a follow-up read.



Signed-off-by: default avatarDave Airlie <airlied@linux.ie>
parent a0a6dd0b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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);