[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