Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37849034
en ru br
Репозитории ALT
4.0: 7.3.0-alt1
3.0: 6.8.2-alt18
+updates:6.8.2-alt24
www.altlinux.org/Changes

Группа :: Система/X11
Пакет: xorg-x11

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: XFree86-4.2.0-pci-hplso.diff
Скачать


--- xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c~	Thu Jan 24 20:28:28 2002
+++ xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c	Thu Jan 24 21:19:39 2002
@@ -1075,14 +1075,31 @@
     for (i = ROM_BASE_PRESET; i <= ROM_BASE_FIND; i++) {
         memType savebase = 0, newbase, romaddr;
 
-        if (i == ROM_BASE_PRESET) {
+        switch (i) {
+        case ROM_BASE_PRESET:
 	    /* Does the driver have a preference? */
 	    if (basereg > ROM_BASE_PRESET && basereg <= ROM_BASE_FIND)
 	        b_reg =  basereg;
 	    else 
 	        b_reg = ++i;
-	} else
+
+	    break;
+        case ROM_BASE_FIND:
+	    /*
+	     * If we have something that looks like a valid address
+	     * in romsave, it's probably not going to help to try
+	     * to guess a new address and reprogram it.
+	     */
+	    if (PCIGETROM(romsave)) {
+		pciWriteLong(Tag, PCI_MAP_ROM_REG, PCI_MAP_ROM_ADDRESS_MASK);
+		if (romsave != pciReadLong(Tag, PCI_MAP_ROM_REG)) {
+		    pciWriteLong(Tag, PCI_MAP_ROM_REG, romsave);
+	            continue;
+		}
+	    }
+	default:
 	    b_reg = i;
+        }
 
 	if (!(newbase = getValidBIOSBase(Tag, b_reg)))
 	    continue;  /* no valid address found */
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin