[MPlayer-dev-eng] [SiS vidix support]
Jake Page
jake at CS.Stanford.EDU
Fri Oct 10 00:53:27 CEST 2003
Hey,
> Could you test the sis_vid version I committed into the CVS as I've made
> several changes to it, to integrate better into the mplayer
> architecture.
Will do.
> And could you also write some description of the libdha patch?
Heh, this one took me some digging around to figure out my own patch...
(actually did it a couple months ago)
It's mostly take from XFree86
xc/programs/Xserver/hw/xfree86/os-support/bus/ix86Pci.c which is a
derivative of the original XFree86 scanpci.c that the libdha code is based
on.
The pci_bus_check() function is almost the same as XFree86's
ix86PciBusCheck() - it checks to make sure there is a VGA device or bridge
on the PCI bus. This function is used by the code I added to
pci_config_type():
...
} else if ((tmplong1 & 0x7f000000) == 0 &&
tmplong2 && pci_bus_check()) {
printf("PCI config is type 1\n");
retval = 1;
} else
...
Which is simplified from ix86PciSelectCfgmech()
Honestly I don't claim to really understand how it relates to the PCI
spec, etc, but the latest XFree86 apparently uses 2 methods to detect if
PCI config type 1 should be used, the first of which is determined by the
code above (the appropriate values of PCI_MODE1_ADDRESS_REG before and
after setting the PCI_EN bit). This method was required to detect the
SiS 740 based chipset on the Shuttle SS40G. I haven't tried it
extensively on other chipsets - but it seemed to detect NVIdia and ATI
PCI config types ok for the 2 non-SiS machines I tried it on (I don't
think either used that code path, but it's a "last try" so it shouldn't
affect anything that already works).
-Jake
More information about the MPlayer-dev-eng
mailing list