summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Stembridge <jstembridge@users.sourceforge.net>2003-05-01 14:23:38 +0000
committerJames Stembridge <jstembridge@users.sourceforge.net>2003-05-01 14:23:38 +0000
commit9e21d82d5771c30ae4da34bc40b44c4211f1693d (patch)
treeaa7136650980d2006bf9b0c56504363f23cf12e4
parent2a1670865294dc762ee02b56ea2f9fd1c834c5e3 (diff)
downloadxine-lib-9e21d82d5771c30ae4da34bc40b44c4211f1693d.tar.gz
xine-lib-9e21d82d5771c30ae4da34bc40b44c4211f1693d.tar.bz2
workaround for some mobility chips reporting zero ram size (from mplayer)
CVS patchset: 4733 CVS date: 2003/05/01 14:23:38
-rw-r--r--src/video_out/vidix/drivers/radeon_vid.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/video_out/vidix/drivers/radeon_vid.c b/src/video_out/vidix/drivers/radeon_vid.c
index 574225c8b..deae77422 100644
--- a/src/video_out/vidix/drivers/radeon_vid.c
+++ b/src/video_out/vidix/drivers/radeon_vid.c
@@ -1188,6 +1188,25 @@ int VIDIX_NAME(vixInit)( const char *args )
radeon_ram_size = INREG(CONFIG_MEMSIZE);
/* mem size is bits [28:0], mask off the rest. Range: from 1Mb up to 512 Mb */
radeon_ram_size &= CONFIG_MEMSIZE_MASK;
+#ifdef RADEON
+ /* according to XFree86 4.2.0, some production M6's return 0 for 8MB */
+ if (radeon_ram_size == 0 &&
+ (def_cap.device_id == DEVICE_ATI_RADEON_MOBILITY_M6 ||
+ def_cap.device_id == DEVICE_ATI_RADEON_MOBILITY_M62))
+ {
+ printf(RADEON_MSG" Workarounding buggy Radeon Mobility M6 (0 vs. 8MB ram)\n");
+ radeon_ram_size = 8192*1024;
+ }
+#else
+ /* Rage Mobility (rage128) also has memsize bug */
+ if (radeon_ram_size == 0 &&
+ (def_cap.device_id == DEVICE_ATI_RAGE_MOBILITY_M3 ||
+ def_cap.device_id == DEVICE_ATI_RAGE_MOBILITY_M32))
+ {
+ printf(RADEON_MSG" Workarounding buggy Rage Mobility M3 (0 vs. 8MB ram)\n");
+ radeon_ram_size = 8192*1024;
+ }
+#endif
if((radeon_mem_base = map_phys_mem(pci_info.base0,radeon_ram_size))==(void *)-1) return ENOMEM;
memset(&besr,0,sizeof(bes_registers_t));
radeon_vid_make_default();