diff options
Diffstat (limited to 'linux-core')
| -rw-r--r-- | linux-core/Makefile | 4 | ||||
| -rw-r--r-- | linux-core/ati_pcigart.c | 12 | ||||
| -rw-r--r-- | linux-core/drmP.h | 6 | 
3 files changed, 16 insertions, 6 deletions
| diff --git a/linux-core/Makefile b/linux-core/Makefile index effc2061..af29bd6a 100644 --- a/linux-core/Makefile +++ b/linux-core/Makefile @@ -238,9 +238,7 @@ drmstat: drmstat.c  	$(CC) $(PRGCFLAGS) $< -o $@ $(DRMSTATLIBS)  install: -	echo "Installing DRM modules to "$(O) -	install *.ko $(O)/driver/char/drm -	depmod -a +	make -C $(LINUXDIR) $(GETCONFIG) SUBDIRS=`pwd` DRMSRCDIR=`pwd` modules_install  else diff --git a/linux-core/ati_pcigart.c b/linux-core/ati_pcigart.c index bb30dd74..52bf8922 100644 --- a/linux-core/ati_pcigart.c +++ b/linux-core/ati_pcigart.c @@ -205,10 +205,18 @@ int drm_ati_pcigart_init(drm_device_t *dev, drm_ati_pcigart_info *gart_info)  		page_base = (u32) entry->busaddr[i];  		for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) { -			if (gart_info->is_pcie) +			switch(gart_info->gart_reg_if) { +			case DRM_ATI_GART_IGP: +				*pci_gart = cpu_to_le32((page_base) | 0xc); +				break; +			case DRM_ATI_GART_PCIE:  				*pci_gart = cpu_to_le32((page_base >> 8) | 0xc); -			else +				break; +			default: +			case DRM_ATI_GART_PCI:  				*pci_gart = cpu_to_le32(page_base); +				break; +			}  			pci_gart++;  			page_base += ATI_PCIGART_PAGE_SIZE;  		} diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 25fc8733..ac0bd767 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -590,9 +590,13 @@ typedef struct drm_vbl_sig {  #define DRM_ATI_GART_MAIN 1  #define DRM_ATI_GART_FB   2 +#define DRM_ATI_GART_PCI 1 +#define DRM_ATI_GART_PCIE 2 +#define DRM_ATI_GART_IGP 3 +  typedef struct ati_pcigart_info {  	int gart_table_location; -	int is_pcie; +	int gart_reg_if;  	void *addr;  	dma_addr_t bus_addr;  	drm_local_map_t mapping; | 
