--- src/gfx/gfx_init.c.orig 2007-10-31 03:10:46 +0300 +++ src/gfx/gfx_init.c 2007-10-31 02:50:58 +0300 @@ -517,13 +517,18 @@ unsigned long gfx_pci_config_read(unsigned long address) { - unsigned long value = 0xFFFFFFFF; + unsigned long value = 0xFFFFFFFF; + + outl(address, PCI_CONFIG_ADDR); + value = inl(PCI_CONFIG_DATA); + /* OUTD(PCI_CONFIG_ADDR, address); + value = IND(PCI_CONFIG_DATA); */ - OUTD(PCI_CONFIG_ADDR, address); - value = IND(PCI_CONFIG_DATA); - return (value); + return (value); } + + /*----------------------------------------------------------------------------- * gfx_pci_config_write * --- src/gfx/init_gu1.c.orig 2007-10-31 03:11:34 +0300 +++ src/gfx/init_gu1.c 2007-10-31 02:52:56 +0300 @@ -128,6 +128,7 @@ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * END_NSC_LIC_GPL */ +#include unsigned char gfx_gxm_config_read(unsigned char index); unsigned long gu1_get_core_freq(void); @@ -149,18 +150,27 @@ unsigned char gfx_gxm_config_read(unsigned char index) { - unsigned char value = 0xFF; - unsigned char lock; + unsigned char value = 0xFF; + unsigned char lock; - OUTB(0x22, GXM_CONFIG_CCR3); - lock = INB(0x23); - OUTB(0x22, GXM_CONFIG_CCR3); - OUTB(0x23, (unsigned char)(lock | 0x10)); - OUTB(0x22, index); - value = INB(0x23); - OUTB(0x22, GXM_CONFIG_CCR3); - OUTB(0x23, lock); - return (value); +/* OUTB(0x22, GXM_CONFIG_CCR3); + lock = INB(0x23); + OUTB(0x22, GXM_CONFIG_CCR3); + OUTB(0x23, (unsigned char)(lock | 0x10)); + OUTB(0x22, index); + value = INB(0x23); + OUTB(0x22, GXM_CONFIG_CCR3); + OUTB(0x23, lock); */ + + outb(GXM_CONFIG_CCR3,0x22); + lock = inb(0x23); + outb(GXM_CONFIG_CCR3,0x22); + outb( (unsigned char)(lock | 0x10),0x23); + outb( index,0x22); + value = inb(0x23); + outb(GXM_CONFIG_CCR3,0x22); + outb( lock,0x23); + return (value); } /*-----------------------------------------------------------------------------