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
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel