style cleanup; fixed missing break on i2c disable check... it looks as though i2c was always enabled, even on chips where it was known to be broken. Lets hope this fixes a radeon graphics bug. CID 3234

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40766 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV 2011-03-01 19:26:35 +00:00
parent f02c85adba
commit ea76002c38

View File

@ -134,7 +134,7 @@
#define DEVICE_ID_RADEON_3e54 0x3e54 // new
#define DEVICE_ID_RADEON_3150 0x3150 // new
#define DEVICE_ID_RADEON_3154 0x3154 // new
#define DEVICE_ID_RADEON_5462 0x5462 // new X600SE on Toshiba M50 really an X300???
#define DEVICE_ID_RADEON_5462 0x5462 // new X600SE on Toshiba M50 an X300???
// rv380 X600AIW
#define DEVICE_ID_RADEON_5b62 0x5b62
@ -245,7 +245,7 @@ typedef struct {
#define STD_RADEON 0 // common as muck PC graphics card (if there is such a thing)
#define ISMOBILITY 1 // is mobility
#define INTEGRATED 2 // is IGP (Integrated Graphics Processor) built in to PC mainboard northbridge typically uses system RAM for graphics
#define INTEGRATED 2 // is IGP (Integrated Graphics Processor) onboard video
#define MOBILE_IGP ISMOBILITY | INTEGRATED // 2 disabilites for the price of 1
// list of supported devices
@ -276,7 +276,7 @@ RadeonDevice radeon_device_list[] = {
{ DEVICE_ID_RADEON_LX, rt_rv200, ISMOBILITY, "Radeon Mobility 7500 GL" },
// R200
{ DEVICE_ID_RADEON_QH , rt_r200, STD_RADEON, "Fire GL E1" }, // chip type: fgl8800
{ DEVICE_ID_RADEON_QH, rt_r200, STD_RADEON, "Fire GL E1" }, // chip fgl8800
{ DEVICE_ID_RADEON_QI, rt_r200, STD_RADEON, "Radeon 8500 QI" },
{ DEVICE_ID_RADEON_QJ, rt_r200, STD_RADEON, "Radeon 8500 QJ" },
{ DEVICE_ID_RADEON_QK, rt_r200, STD_RADEON, "Radeon 8500 QK" },
@ -503,7 +503,8 @@ bool Radeon_CardDetect( void )
if (Radeon_MapBIOS(&pcii, &ri) == B_OK) {
Radeon_UnmapBIOS(&ri);
SHOW_INFO( 0, "found supported device pci index %ld, device 0x%04x/0x%04x",
SHOW_INFO(0, "found supported device"
" pci index %ld, device 0x%04x/0x%04x",
pci_index, pcii.vendor_id, pcii.device_id);
found_one = TRUE;
goto done;
@ -525,6 +526,7 @@ done:
return (found_one ? B_OK : B_ERROR);
}
// !extend this array whenever a new ASIC is a added!
static struct {
const char *name; // name of ASIC
@ -534,20 +536,20 @@ static struct {
bool new_pll; // reference divider of PPLL moved to other location
} asic_properties[] =
{
{ "r100", tc_external_rt1, false, true, false,},
{ "rv100", tc_internal_rt1, true, true, false,},
{ "rs100", tc_internal_rt1, true, false, false,},
{ "rv200", tc_internal_rt2, true, true, false,},
{ "rs200", tc_internal_rt1, true, false, false,},
{ "r200", tc_external_rt1, true, true, false,},
{ "rv250", tc_internal_rt2, true, true, false,},
{ "rs300", tc_internal_rt1, true, false, false,},
{ "rv280", tc_internal_rt2, true, true, false,},
{ "r300", tc_internal_rt2, true, true, true, },
{ "r350", tc_internal_rt2, true, true, true, },
{ "rv350", tc_internal_rt2, true, true, true, },
{ "rv380", tc_internal_rt2, true, true, true, },
{ "r420", tc_internal_rt2, true, true, true, }
{ "r100", tc_external_rt1, false, true, false},
{ "rv100", tc_internal_rt1, true, true, false},
{ "rs100", tc_internal_rt1, true, false, false},
{ "rv200", tc_internal_rt2, true, true, false},
{ "rs200", tc_internal_rt1, true, false, false},
{ "r200", tc_external_rt1, true, true, false},
{ "rv250", tc_internal_rt2, true, true, false},
{ "rs300", tc_internal_rt1, true, false, false},
{ "rv280", tc_internal_rt2, true, true, false},
{ "r300", tc_internal_rt2, true, true, true },
{ "r350", tc_internal_rt2, true, true, true },
{ "rv350", tc_internal_rt2, true, true, true },
{ "rv380", tc_internal_rt2, true, true, true },
{ "r420", tc_internal_rt2, true, true, true }
};
@ -564,7 +566,8 @@ static bool probeDevice( device_info *di )
if (SupportedVendors[vendor].vendor_id != di->pcii.vendor_id)
continue;
for( device = SupportedVendors[vendor].devices; device->device_id; ++device ) {
for (device = SupportedVendors[vendor].devices; device->device_id;
++device) {
// avoid double-detection
if (device->device_id != di->pcii.device_id)
continue;
@ -589,9 +592,9 @@ static bool probeDevice( device_info *di )
case DEVICE_ID_RADEON_5460:
case DEVICE_ID_RADEON_5464:
di->has_no_i2c = true;
break;
default:
di->has_no_i2c = false;
}
// disable 2d DMA engine for chips that don't work with our
@ -634,14 +637,15 @@ static bool probeDevice( device_info *di )
// rs410
case DEVICE_ID_RS410_5a61:
case DEVICE_ID_RS410_5a62:
// r430
case DEVICE_ID_RADEON_UM:
// rs480
case DEVICE_ID_RS480_5954:
case DEVICE_ID_RS480_5955:
case DEVICE_ID_RS482_5974:
case DEVICE_ID_RS482_5975:
di->acc_dma = false;
break;
default:
@ -661,7 +665,8 @@ static bool probeDevice( device_info *di )
// we don't need BIOS any more
Radeon_UnmapBIOS(&di->rom);
SHOW_INFO( 0, "found %s; ASIC: %s", device->name, asic_properties[device->asic].name );
SHOW_INFO(0, "found %s; ASIC: %s", device->name,
asic_properties[device->asic].name);
sprintf(di->name, "graphics/%04X_%04X_%02X%02X%02X",
di->pcii.vendor_id, di->pcii.device_id,
@ -669,9 +674,9 @@ static bool probeDevice( device_info *di )
SHOW_FLOW(3, "making /dev/%s", di->name);
// we always publish it as a video grabber; we should check for Rage
// Theater, but the corresponding code (vip.c) needs a fully initialized
// driver, and this is too much hazzly, so we leave it to the media add-on
// to verify that the card really supports video-in
// Theater, but the corresponding code (vip.c) needs a fully
// initialized driver, and this is too much hazzly, so we leave it
// to the media add-on to verify that the card supports video-in
sprintf(di->video_name, "video/radeon/%04X_%04X_%02X%02X%02X",
di->pcii.vendor_id, di->pcii.device_id,
di->pcii.bus, di->pcii.device, di->pcii.function);