Bug #6750: This patch detects Intel bridges that are transparent but aren't
reported as such. From the Linux kernel fixups. This patch also removes
    the reserved BIOS area from the area to allocate resources in.
			
			
This commit is contained in:
		
							parent
							
								
									6d156c0440
								
							
						
					
					
						commit
						c339b221d3
					
				
							
								
								
									
										10
									
								
								ChangeLog
								
								
								
								
							
							
						
						
									
										10
									
								
								ChangeLog
								
								
								
								
							| 
						 | 
				
			
			@ -1,3 +1,13 @@
 | 
			
		|||
2006-04-26  Dave Airlie <airlied@linux.ie>
 | 
			
		||||
 | 
			
		||||
	* hw/xfree86/common/xf86pciBus.c:
 | 
			
		||||
	* hw/xfree86/os-support/shared/stdResource.c:
 | 
			
		||||
	(xf86StdAccResFromOS):
 | 
			
		||||
	Bug #6750: This patch detects Intel bridges that are transparent
 | 
			
		||||
	but aren't reported as such. From the Linux kernel fixups.
 | 
			
		||||
	This patch also removes the reserved BIOS area from the
 | 
			
		||||
	area to allocate resources in.
 | 
			
		||||
 | 
			
		||||
2006-04-25  Eric Anholt  <anholt@FreeBSD.org>
 | 
			
		||||
 | 
			
		||||
	* exa/exa_migration.c: (exaPixmapSave), (exaMoveInPixmap),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1774,7 +1774,16 @@ xf86GetPciBridgeInfo(void)
 | 
			
		|||
		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 =
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -150,10 +150,11 @@ xf86StdAccResFromOS(resPtr ret)
 | 
			
		|||
    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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue