patch-2.4.23 linux-2.4.23/drivers/video/sis/sis_accel.h
Next file: linux-2.4.23/drivers/video/sis/sis_main.c
Previous file: linux-2.4.23/drivers/video/sis/sis_accel.c
Back to the patch index
Back to the overall index
- Lines: 31
- Date:
2003-11-28 10:26:21.000000000 -0800
- Orig file:
linux-2.4.22/drivers/video/sis/sis_accel.h
- Orig date:
2003-08-25 04:44:43.000000000 -0700
diff -urN linux-2.4.22/drivers/video/sis/sis_accel.h linux-2.4.23/drivers/video/sis/sis_accel.h
@@ -342,16 +342,27 @@
bits 7:0: 2D counter 1
Where is the command queue length (current amount of commands the queue
- can accept) on the 315 series? (The current implementation is taken
- from 300 series and certainly wrong...)
+ can accept) on the 315 series?
*/
/* TW: FIXME: CmdQueLen is... where....? */
+/* We assume a length of 4 bytes per command; since 512K of
+ * of RAM are allocated, the number of commands is easily
+ * calculated (assuming that there is no 3D support yet)
+ * We calculate it very cautiously (128K only) and let the
+ * rest to the (never?)-to-come (?) 3D engine. (The 3D engine
+ * can use a similar technique, using the remaining 384K,
+ * hence a queue overflow is avoided)
+ * UPDATE: This technique causes a terrible system latency
+ * on integrated chipsets. Disable the queue handling for
+ * now.
+ */
#define SiS310Idle \
{ \
while( (MMIO_IN16(ivideo.mmio_vbase, Q_STATUS+2) & 0x8000) != 0x8000){}; \
while( (MMIO_IN16(ivideo.mmio_vbase, Q_STATUS+2) & 0x8000) != 0x8000){}; \
- CmdQueLen=MMIO_IN16(ivideo.mmio_vbase, Q_STATUS); \
+ CmdQueLen = 0; \
+ /*CmdQueLen = ((128 * 1024) / 4) - 64; */ \
}
#define SiS310SetupSRCBase(base) \
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)