From c6c30cfa354eb456638f10771a7cb02271696af2 Mon Sep 17 00:00:00 2001 From: Vladimir Dergachev Date: Thu, 13 Jan 2005 17:35:49 +0000 Subject: Modified: programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c Some of the newer Radeons (R420 for example) have MM_TABLE's with size 0x33 (instead of 0x0c that we know). Furthermore, they lockup during access of I2C bus ! Add a check to validate MM_TABLE. Note: the check is not more stringent as other card manufacturers (like Asus or Tekram) might make cards with slightly different MM_TABLE. --- src/radeon_driver.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 760560c0..c2a12d8d 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -4284,6 +4284,16 @@ static Bool RADEONPreInitXv(ScrnInfoPtr pScrn) info->MM_TABLE.input[2], info->MM_TABLE.input[3], info->MM_TABLE.input[4]); + + /* Is it an MM_TABLE we know about ? */ + if(info->MM_TABLE.table_size != 0xc){ + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "This card has MM_TABLE we do not recognize.\n" + "\t\tIf your card is TV-in capable you will need to specify options RageTheatreCrystal, RageTheatreTunerPort, \n" + "\t\tRageTheatreSVideoPort and TunerType in /etc/X11/xorg.conf.\n" + ); + info->MM_TABLE_valid = FALSE; + return TRUE; + } info->MM_TABLE_valid = TRUE; } else { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "No MM_TABLE found - assuming card is not TV-in capable (mm_table=%d).\n", mm_table); -- cgit v1.2.3