--- FVCool103.orig/fvcool.c 2003-06-15 12:23:15.000000000 -0400 +++ FVCool103/fvcool.c 2003-06-15 12:23:15.000000000 -0400 @@ -53,20 +53,24 @@ (PCI conf. register 0x90 bit 23 i.e. |= 0x800000) PCI conf. register 0x95 bit 1 i.e. |= 0x02 < --- HLT (PCI conf. register 0x94 bit 9 i.e. |= 0x0200) + PCI conf. register 0x70 bit 3 i.e. |= 0x08 + (PCI conf. register 0x70 bit 3 i.e. |= 0x08) - VIA KT400 + VIA KT400, KM400 PCI conf. register 0xD2 bit 7 i.e. |= 0x80 < --- STPGNT (PCI conf. register 0xD0 bit 23 i.e. |= 0x800000) PCI conf. register 0xD5 bit 1 i.e. |= 0x02 < --- HLT (PCI conf. register 0xD4 bit 9 i.e. |= 0x0200) + PCI conf. register 0x70 bit 3 i.e. |= 0x08 + (PCI conf. register 0x70 bit 3 i.e. |= 0x08) Sis 730, 733 PCI conf. register 0x6B bit 0 i.e. |= 0x01 (PCI conf. register 0x68 bit 24 i.e. |= 0x01000000) Sis 735, 740, 745 - PCI conf. register 0x6A bit 0 i.e. |= 0x01 - (PCI conf. register 0x68 bit 16 i.e. |= 0x010000) + PCI conf. register 0x6A bit 0 i.e. |= 0x03 + (PCI conf. register 0x68 bit 16 i.e. |= 0x030000) Sis 746 PCI conf. register 0x6C bit 0 i.e. |= 0x01 @@ -172,6 +176,7 @@ #define ID_VIA8366 0x30991106 #define ID_VIA8368 0x31891106 +#define ID_VIA8378 0x32051106 #define ID_VIA686 0x30571106 #define VIA_KT133 0x11 #define VIA_KT266 0x12 #define VIA_KT400 0x13 @@ -263,6 +268,7 @@ *chip = VIA_KT266; break; case ID_VIA8368: + case ID_VIA8378: *chip = VIA_KT400; break; @@ -381,6 +387,10 @@ PCIWrite(maskbits(res, 0x0200), 0x94, nb_f, nb_d, nb_b); if (debug_flag) chip_info(res, "", 0x95, 0x02); + res = PCIRead(0x70, nb_f, nb_d, nb_b); + PCIWrite(maskbits(res, 0x08), 0x70, nb_f, nb_d, nb_b); + if (debug_flag) + chip_info(res, "", 0x70, 0x08); break; case VIA_KT400: res = PCIRead(0xD0, nb_f, nb_d, nb_b); @@ -391,6 +401,10 @@ PCIWrite(maskbits(res, 0x0200), 0xD4, nb_f, nb_d, nb_b); if (debug_flag) chip_info(res, "", 0xD5, 0x02); + res = PCIRead(0x70, nb_f, nb_d, nb_b); + PCIWrite(maskbits(res, 0x08), 0x70, nb_f, nb_d, nb_b); + if (debug_flag) + chip_info(res, "", 0x70, 0x08); break; case SIS_730: res = PCIRead(0x68, nb_f, nb_d, nb_b); @@ -400,9 +414,9 @@ break; case SIS_735: res = PCIRead(0x68, nb_f, nb_d, nb_b); - PCIWrite(maskbits(res, 0x010000), 0x68, nb_f, nb_d, nb_b); + PCIWrite(maskbits(res, 0x030000), 0x68, nb_f, nb_d, nb_b); if (debug_flag) - chip_info(res, "SiS735/740/745 found.\n", 0x6A, 0x01); + chip_info(res, "SiS735/740/745 found.\n", 0x6A, 0x03); break; case SIS_746: res = PCIRead(0x6C, nb_f, nb_d, nb_b);