Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
Conflicts: hw/xfree86/os-support/bus/linuxPci.c
This commit is contained in:
		
						commit
						37838de62e
					
				| 
						 | 
					@ -105,6 +105,8 @@ DLFindSymbolLocal(pointer module, const char *name)
 | 
				
			||||||
    return p;
 | 
					    return p;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void *global_scope = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void *
 | 
					void *
 | 
				
			||||||
DLFindSymbol(const char *name)
 | 
					DLFindSymbol(const char *name)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -117,6 +119,12 @@ DLFindSymbol(const char *name)
 | 
				
			||||||
	    return p;
 | 
						    return p;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!global_scope)
 | 
				
			||||||
 | 
						global_scope = dlopen(NULL, DLOPEN_LAZY | DLOPEN_GLOBAL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (global_scope)
 | 
				
			||||||
 | 
						return dlsym(global_scope, name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return NULL;
 | 
					    return NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -416,7 +416,7 @@ xf86GetPciHostConfigFromTag(PCITAG Tag)
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Please keep this table in ascending vendor/device order.
 | 
					 * Please keep this table in ascending vendor/device order.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
static struct pciSizes {
 | 
					static const struct pciSizes {
 | 
				
			||||||
    unsigned short vendor, device;
 | 
					    unsigned short vendor, device;
 | 
				
			||||||
    unsigned long io_size, mem_size;
 | 
					    unsigned long io_size, mem_size;
 | 
				
			||||||
} pciControllerSizes[] = {
 | 
					} pciControllerSizes[] = {
 | 
				
			||||||
| 
						 | 
					@ -439,9 +439,12 @@ static struct pciSizes {
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
#define NUM_SIZES (sizeof(pciControllerSizes) / sizeof(pciControllerSizes[0]))
 | 
					#define NUM_SIZES (sizeof(pciControllerSizes) / sizeof(pciControllerSizes[0]))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static unsigned long
 | 
					static const struct pciSizes *
 | 
				
			||||||
linuxGetIOSize(PCITAG Tag)
 | 
					linuxGetSizesStruct(PCITAG Tag)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    static const struct pciSizes default_size = {
 | 
				
			||||||
 | 
						0, 0, 1U << 16, (unsigned long)(1ULL << 32)
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
    pciConfigPtr pPCI;
 | 
					    pciConfigPtr pPCI;
 | 
				
			||||||
    int          i;
 | 
					    int          i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -449,47 +452,31 @@ linuxGetIOSize(PCITAG Tag)
 | 
				
			||||||
    if ((pPCI = xf86GetPciHostConfigFromTag(Tag))) {
 | 
					    if ((pPCI = xf86GetPciHostConfigFromTag(Tag))) {
 | 
				
			||||||
	/* Look up vendor/device */
 | 
						/* Look up vendor/device */
 | 
				
			||||||
	for (i = 0;  i < NUM_SIZES;  i++) {
 | 
						for (i = 0;  i < NUM_SIZES;  i++) {
 | 
				
			||||||
	    if (pPCI->pci_vendor > pciControllerSizes[i].vendor)
 | 
						    if ((pPCI->pci_vendor == pciControllerSizes[i].vendor)
 | 
				
			||||||
		continue;
 | 
							&& (pPCI->_pci_device == pciControllerSizes[i].device)) {
 | 
				
			||||||
	    if (pPCI->pci_vendor < pciControllerSizes[i].vendor)
 | 
							return & pciControllerSizes[i];
 | 
				
			||||||
		break;
 | 
						    }
 | 
				
			||||||
	    if (pPCI->_pci_device > pciControllerSizes[i].device)
 | 
					 | 
				
			||||||
		continue;
 | 
					 | 
				
			||||||
	    if (pPCI->_pci_device < pciControllerSizes[i].device)
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	    return pciControllerSizes[i].io_size;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 1U << 16;			/* Default to 64K */
 | 
					    /* Default to 64KB I/O and 4GB memory. */
 | 
				
			||||||
 | 
					    return & default_size;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static __inline__ unsigned long
 | 
				
			||||||
 | 
					linuxGetIOSize(PCITAG Tag)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    const struct pciSizes * const sizes = linuxGetSizesStruct(Tag);
 | 
				
			||||||
 | 
					    return sizes->io_size;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline__ void
 | 
				
			||||||
linuxGetSizes(PCITAG Tag, unsigned long *io_size, unsigned long *mem_size)
 | 
					linuxGetSizes(PCITAG Tag, unsigned long *io_size, unsigned long *mem_size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    pciConfigPtr pPCI;
 | 
					    const struct pciSizes * const sizes = linuxGetSizesStruct(Tag);
 | 
				
			||||||
    int          i;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *io_size  = (1U << 16);			/* Default to 64K */
 | 
					    *io_size  = sizes->io_size;
 | 
				
			||||||
    *mem_size = (unsigned long)(1ULL << 32);	/* Default to 4G */
 | 
					    *mem_size = sizes->mem_size;
 | 
				
			||||||
 | 
					 | 
				
			||||||
    /* Find host bridge */
 | 
					 | 
				
			||||||
    if ((pPCI = xf86GetPciHostConfigFromTag(Tag))) {
 | 
					 | 
				
			||||||
	/* Look up vendor/device */
 | 
					 | 
				
			||||||
	for (i = 0;  i < NUM_SIZES;  i++) {
 | 
					 | 
				
			||||||
	    if (pPCI->pci_vendor > pciControllerSizes[i].vendor)
 | 
					 | 
				
			||||||
		continue;
 | 
					 | 
				
			||||||
	    if (pPCI->pci_vendor < pciControllerSizes[i].vendor)
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	    if (pPCI->_pci_device > pciControllerSizes[i].device)
 | 
					 | 
				
			||||||
		continue;
 | 
					 | 
				
			||||||
	    if (pPCI->_pci_device < pciControllerSizes[i].device)
 | 
					 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	    *io_size  = pciControllerSizes[i].io_size;
 | 
					 | 
				
			||||||
	    *mem_size = pciControllerSizes[i].mem_size;
 | 
					 | 
				
			||||||
	    break;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_X_EXPORT int
 | 
					_X_EXPORT int
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue