[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#345958: patch



tags 345958 patch
thanks

Hi!

This patch from Ubuntu worked for me.

-- 
Robert Millan
sat@ackstorm.es
Departamento de Asistencia Técnica

Oficina central: (+34) 902 888 345
Asistencia técnica: (+34) 902 888 408

ACK STORM, S.L.
http://www.ackstorm.es

Este mensaje electrónico contiene información de ACK STORM, S.L. que es privada
y confidencial, siendo para el uso exclusivo de las personas o entidades arriba
mencionadas. Si usted no es el destinatario señalado, le informamos que
cualquier divulgación, copia, distribución o uso de los contenidos está
prohibida. Si usted ha recibido este mensaje por error, por favor borre su
contenido y comuníquenoslo en la dirección ackstorm@ackstorm.es
--------------------------------------------------
#! /bin/sh /usr/share/dpatch/dpatch-run
## 100_fix_for_certain_intel_chipsets.dpatch by  <sh@linux2go.dk>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad --exclude=CVS --exclude=.svn ./hw/xfree86/common/xf86pciBus.c /tmp/dpep-work.sYNMum/xorg-server-1.0.2/hw/xfree86/common/xf86pciBus.c
--- ./hw/xfree86/common/xf86pciBus.c	2005-07-04 20:41:02.000000000 +0200
+++ /tmp/dpep-work.sYNMum/xorg-server-1.0.2/hw/xfree86/common/xf86pciBus.c	2006-05-04 00:57:05.831956042 +0200
@@ -1800,7 +1800,16 @@
 		PciBus->brfunc = pcrp->funcnum;
 
 		PciBus->subclass = sub_class;
-		PciBus->interface = pcrp->pci_prog_if;
+
+		/* The Intel bridges don't report as transparent
+		   but guess what they are - from Linux kernel - airlied */
+		if ((pcrp->pci_vendor == PCI_VENDOR_INTEL) && 
+		   ((pcrp->pci_device & 0xff00) == 0x2400)) {
+			xf86MsgVerb(X_INFO, 3, "Intel Bridge workaround enabled\n");
+			PciBus->interface = PCI_IF_BRIDGE_PCI_SUBTRACTIVE;
+		} else {
+			PciBus->interface = pcrp->pci_prog_if;
+		}
 
 		if (pBusInfo && pBusInfo->funcs->pciControlBridge)
 		    PciBus->brcontrol =
diff -urNad --exclude=CVS --exclude=.svn ./hw/xfree86/os-support/shared/stdResource.c /tmp/dpep-work.sYNMum/xorg-server-1.0.2/hw/xfree86/os-support/shared/stdResource.c
--- ./hw/xfree86/os-support/shared/stdResource.c	2005-07-03 09:01:35.000000000 +0200
+++ /tmp/dpep-work.sYNMum/xorg-server-1.0.2/hw/xfree86/os-support/shared/stdResource.c	2006-05-04 00:57:05.833955345 +0200
@@ -150,10 +150,11 @@
     ret = xf86AddResToList(ret, &range, -1);
     RANGE(range, 0xfee00000, 0xfeefffff, ResExcMemBlock | ResBios);
     ret = xf86AddResToList(ret, &range, -1);
-#endif
+    /* airlied - remove BIOS range it shouldn't be here 
+       this should use E820 - or THE OS */
     RANGE(range, 0xffe00000, 0xffffffff, ResExcMemBlock | ResBios);
     ret = xf86AddResToList(ret, &range, -1);
-
+#endif
     /*
      * Fallback would be to claim well known ports in the 0x0 - 0x3ff range
      * along with their sparse I/O aliases, but that's too imprecise.  Instead

Reply to: