Comment 33 for bug 28925

Revision history for this message
In , Timo Jyrinki (timo-jyrinki-hut) wrote :

(In reply to comment #14)
> I think that's just the ati wrapper's way of saying 'I have no idea what this
> is; I tried treating it as a Mach64 eventually, but it didn't work'.

Well, I (think I) found that it's not like that. It looks like it is actually
detected as Mach64, and it's never even tried to be found out whether it's
Radeon or not (as Mach64 detection comes before Radeon). If you check the
portion of the patch in the code, it looks like the ati wrapper thinks a card is
a Mach64 if:
1. Chip is not MACH32 (but still made by ATI)
2. pVideo->size[1] == FALSE
(if the chip is MACH32 or the 2. is TRUE, it continues to Radeon model detection)

Please correct if I'm wrong, but that's how it currently looks to me (though I
might very easily miss something the function is doing). And similarly, if a
Mach64 is not found, a Radeon is "detected" by checking that the chip is still
not MACH32, and that pVideo->size[1] == TRUE.

Assuming ATIChipID can't be trusted wholely (as it only knows chips listed in
atipciids.h), would it be okay to use it if the chip id is actually found as
listed? Then the first part of the patch could be applied with additional
chip-id-was-found-in-the-pci-id-list check so that the Mach64 would be skipped
at least for the known/listed newer Radeons. And maybe in the latter part
similar check could also be made so that the Radeon code is enabled for the
known cards at least.

This bug might be affecting all "PCI-E Xxxx series cards", or does someone how a
working X300/X600/X700/X800 PCI-E card?