http://bugs.freedesktop.org/show_bug.cgi?id=10432





------- Comment #3 from [EMAIL PROTECTED]  2007-04-08 02:44 PST -------
Patch below is solving my problem or, at least, is making it very hard to
reproduce. It is reverted part of hunk 2. With this change I can use glxgears
again. Tested with 2.6.20 and 2.6.21-rc5. Btw. I don't know what this patch is
doing. Please make it correct.

diff --git a/shared-core/via_dma.c b/shared-core/via_dma.c
--- a/shared-core/via_dma.c
+++ b/shared-core/via_dma.c
@@ -419,7 +419,6 @@ static inline uint32_t *via_get_dma(drm_via_private_t *
dev_priv)
  * modifying the pause address stored in the buffer itself. If
  * the regulator has already paused, restart it.
  */
-
 static int via_hook_segment(drm_via_private_t *dev_priv,
                            uint32_t pause_addr_hi, uint32_t pause_addr_lo,
                            int no_pci_fire)
@@ -430,12 +429,20 @@ static int via_hook_segment(drm_via_private_t *dev_priv,

        paused = 0;
        via_flush_write_combine();
+       while(! *(via_get_dma(dev_priv)-1));
        *dev_priv->last_pause_ptr = pause_addr_lo;
        via_flush_write_combine();
+       /*
+        * The below statement is inserted to really force the flush.
+        * Not sure it is needed.
+        */
+
+       while(! *dev_priv->last_pause_ptr);
        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;
        dev_priv->last_pause_ptr = via_get_dma(dev_priv) - 1;
+       while(! *dev_priv->last_pause_ptr);

        if ((ptr - reader) <= dev_priv->dma_diff ) {
                count = 10000000;


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to