diff options
Diffstat (limited to 'linux-core')
| -rw-r--r-- | linux-core/drmP.h | 12 | ||||
| -rw-r--r-- | linux-core/drm_bufs.c | 12 | ||||
| -rw-r--r-- | linux-core/drm_fops.c | 4 | ||||
| -rw-r--r-- | linux-core/drm_ioctl.c | 10 | ||||
| -rw-r--r-- | linux-core/drm_irq.c | 10 | ||||
| -rw-r--r-- | linux-core/drm_lock.c | 2 | ||||
| -rw-r--r-- | linux-core/drm_pci.c | 18 | ||||
| -rw-r--r-- | linux-core/drm_proc.c | 8 | ||||
| -rw-r--r-- | linux-core/drm_sman.c | 2 | ||||
| -rw-r--r-- | linux-core/drm_stub.c | 8 | ||||
| -rw-r--r-- | linux-core/drm_vm.c | 18 | ||||
| -rw-r--r-- | linux-core/i810_drv.h | 20 | ||||
| -rw-r--r-- | linux-core/sis_drv.c | 14 | ||||
| -rw-r--r-- | linux-core/via_dmablit.c | 25 | ||||
| -rw-r--r-- | linux-core/via_dmablit.h | 10 | 
15 files changed, 82 insertions, 91 deletions
| diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 642ab4b0..6046dde6 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -298,8 +298,8 @@ typedef struct drm_devstate {  } drm_devstate_t;  typedef struct drm_magic_entry { -        drm_hash_item_t hash_item; -        struct list_head head; +	drm_hash_item_t hash_item; +	struct list_head head;  	struct drm_file *priv;  } drm_magic_entry_t; @@ -506,7 +506,7 @@ typedef struct drm_sigdata {   */  typedef struct drm_map_list {  	struct list_head head;		/**< list head */ -        drm_hash_item_t hash; +	drm_hash_item_t hash;  	drm_map_t *map;			/**< mapping */  	unsigned int user_token;  } drm_map_list_t; @@ -676,15 +676,15 @@ typedef struct drm_device {  	/*@{ */  	drm_file_t *file_first;		/**< file list head */  	drm_file_t *file_last;		/**< file list tail */ -        drm_open_hash_t magiclist; -        struct list_head magicfree; +	drm_open_hash_t magiclist; +	struct list_head magicfree;  	/*@} */  	/** \name Memory management */  	/*@{ */  	drm_map_list_t *maplist;	/**< Linked list of regions */  	int map_count;			/**< Number of mappable regions */ -        drm_open_hash_t map_hash;       /**< User token hash table for maps */ +	drm_open_hash_t map_hash;       /**< User token hash table for maps */  	/** \name Context handle management */  	/*@{ */ diff --git a/linux-core/drm_bufs.c b/linux-core/drm_bufs.c index eaec611e..7d3121d3 100644 --- a/linux-core/drm_bufs.c +++ b/linux-core/drm_bufs.c @@ -290,13 +290,13 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset,  	user_token = (map->type == _DRM_SHM) ? (unsigned long) map->handle :   		map->offset; -        ret = drm_map_handle(dev, &list->hash, user_token, 0);  +	ret = drm_map_handle(dev, &list->hash, user_token, 0);   	if (ret) { -                drm_free(map, sizeof(*map), DRM_MEM_MAPS); -                drm_free(list, sizeof(*list), DRM_MEM_MAPS); -                mutex_unlock(&dev->struct_mutex); -                return ret; +		drm_free(map, sizeof(*map), DRM_MEM_MAPS); +		drm_free(list, sizeof(*list), DRM_MEM_MAPS); +		mutex_unlock(&dev->struct_mutex); +		return ret;  	}  	list->user_token = list->hash.key; @@ -384,7 +384,7 @@ int drm_rmmap_locked(drm_device_t *dev, drm_local_map_t *map)  		if (r_list->map == map) {  			list_del(list); -                        drm_ht_remove_key(&dev->map_hash, r_list->user_token); +			drm_ht_remove_key(&dev->map_hash, r_list->user_token);  			drm_free(list, sizeof(*list), DRM_MEM_MAPS);  			break;  		} diff --git a/linux-core/drm_fops.c b/linux-core/drm_fops.c index 377007c6..48c77545 100644 --- a/linux-core/drm_fops.c +++ b/linux-core/drm_fops.c @@ -74,8 +74,8 @@ static int drm_setup(drm_device_t * dev)  	for (i = 0; i < ARRAY_SIZE(dev->counts); i++)  		atomic_set(&dev->counts[i], 0); -        drm_ht_create(&dev->magiclist, DRM_MAGIC_HASH_ORDER); -        INIT_LIST_HEAD(&dev->magicfree); +	drm_ht_create(&dev->magiclist, DRM_MAGIC_HASH_ORDER); +	INIT_LIST_HEAD(&dev->magicfree);  	dev->ctxlist = drm_alloc(sizeof(*dev->ctxlist), DRM_MEM_CTXLIST);  	if (dev->ctxlist == NULL) diff --git a/linux-core/drm_ioctl.c b/linux-core/drm_ioctl.c index 2ea6af08..776f462e 100644 --- a/linux-core/drm_ioctl.c +++ b/linux-core/drm_ioctl.c @@ -242,7 +242,7 @@ int drm_getclient(struct inode *inode, struct file *filp,  {  	drm_file_t *priv = filp->private_data;  	drm_device_t *dev = priv->head->dev; -	drm_client_t __user *argp = (void __user *)arg; +	drm_client_t __user *argp = (drm_client_t __user *)arg;  	drm_client_t client;  	drm_file_t *pt;  	int idx; @@ -329,21 +329,23 @@ int drm_setversion(DRM_IOCTL_ARGS)  	int if_version;  	drm_set_version_t __user *argp = (void __user *)data; -	DRM_COPY_FROM_USER_IOCTL(sv, argp, sizeof(sv)); +	if (copy_from_user(&sv, argp, sizeof(sv))) +		return -EFAULT;  	retv.drm_di_major = DRM_IF_MAJOR;  	retv.drm_di_minor = DRM_IF_MINOR;  	retv.drm_dd_major = dev->driver->major;  	retv.drm_dd_minor = dev->driver->minor; -	DRM_COPY_TO_USER_IOCTL(argp, retv, sizeof(sv)); +	if (copy_to_user(argp, &retv, sizeof(sv))) +		return -EFAULT;  	if (sv.drm_di_major != -1) {  		if (sv.drm_di_major != DRM_IF_MAJOR ||  		    sv.drm_di_minor < 0 || sv.drm_di_minor > DRM_IF_MINOR)  			return EINVAL;  		if_version = DRM_IF_VERSION(sv.drm_di_major, sv.drm_di_minor); -		dev->if_version = DRM_MAX(if_version, dev->if_version); +		dev->if_version = max(if_version, dev->if_version);  		if (sv.drm_di_minor >= 1) {  			/*  			 * Version 1.1 includes tying of DRM to specific device diff --git a/linux-core/drm_irq.c b/linux-core/drm_irq.c index 21a649bc..c2a9e3d6 100644 --- a/linux-core/drm_irq.c +++ b/linux-core/drm_irq.c @@ -222,12 +222,12 @@ int drm_control(struct inode *inode, struct file *filp,   * Wait for VBLANK.   *   * \param inode device inode. - * \param filp file pointer.rm. + * \param filp file pointer.   * \param cmd command.   * \param data user argument, pointing to a drm_wait_vblank structure.   * \return zero on success or a negative number on failure.   * - * Verifies the IRQ is installed + * Verifies the IRQ is installed.   *   * If a signal is requested checks if this task has already scheduled the same signal   * for the same vblank sequence number - nothing to be done in @@ -253,7 +253,8 @@ int drm_wait_vblank(DRM_IOCTL_ARGS)  	if ((!dev->irq) || (!dev->irq_enabled))  		return -EINVAL; -	DRM_COPY_FROM_USER_IOCTL(vblwait, argp, sizeof(vblwait)); +	if (copy_from_user(&vblwait, argp, sizeof(vblwait))) +		return -EFAULT;  	switch (vblwait.request.type & ~_DRM_VBLANK_FLAGS_MASK) {  	case _DRM_VBLANK_RELATIVE: @@ -327,7 +328,8 @@ int drm_wait_vblank(DRM_IOCTL_ARGS)  	}        done: -	DRM_COPY_TO_USER_IOCTL(argp, vblwait, sizeof(vblwait)); +	if (copy_to_user(argp, &vblwait, sizeof(vblwait))) +		return -EFAULT;  	return ret;  } diff --git a/linux-core/drm_lock.c b/linux-core/drm_lock.c index a268d8ee..7aa00bc2 100644 --- a/linux-core/drm_lock.c +++ b/linux-core/drm_lock.c @@ -104,7 +104,7 @@ int drm_lock(struct inode *inode, struct file *filp,  	__set_current_state(TASK_RUNNING);  	remove_wait_queue(&dev->lock.lock_queue, &entry); -        DRM_DEBUG( "%d %s\n", lock.context, ret ? "interrupted" : "has lock" ); +	DRM_DEBUG( "%d %s\n", lock.context, ret ? "interrupted" : "has lock" );  	if (ret) return ret;  	sigemptyset(&dev->sigmask); diff --git a/linux-core/drm_pci.c b/linux-core/drm_pci.c index b69dda22..40a65f3e 100644 --- a/linux-core/drm_pci.c +++ b/linux-core/drm_pci.c @@ -37,6 +37,7 @@   */  #include <linux/pci.h> +#include <linux/dma-mapping.h>  #include "drmP.h"  /**********************************************************************/ @@ -83,11 +84,7 @@ drm_dma_handle_t *drm_pci_alloc(drm_device_t * dev, size_t size, size_t align,  		return NULL;  	dmah->size = size; -#if 0 -	dmah->vaddr = pci_alloc_consistent(dev->pdev, size, &dmah->busaddr); -#else  	dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size, &dmah->busaddr, GFP_KERNEL | __GFP_COMP); -#endif  #ifdef DRM_DEBUG_MEMORY  	if (dmah->vaddr == NULL) { @@ -112,14 +109,12 @@ drm_dma_handle_t *drm_pci_alloc(drm_device_t * dev, size_t size, size_t align,  	memset(dmah->vaddr, 0, size); -#if 1  	/* XXX - Is virt_to_page() legal for consistent mem? */  	/* Reserve */  	for (addr = (unsigned long)dmah->vaddr, sz = size;  	     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {  		SetPageReserved(virt_to_page(addr));  	} -#endif  	return dmah;  } @@ -132,10 +127,8 @@ EXPORT_SYMBOL(drm_pci_alloc);   */  void __drm_pci_free(drm_device_t * dev, drm_dma_handle_t *dmah)  { -#if 1  	unsigned long addr;  	size_t sz; -#endif  #ifdef DRM_DEBUG_MEMORY  	int area = DRM_MEM_DMA;  	int alloc_count; @@ -147,21 +140,14 @@ void __drm_pci_free(drm_device_t * dev, drm_dma_handle_t *dmah)  		DRM_MEM_ERROR(area, "Attempt to free address 0\n");  #endif  	} else { -#if 1  		/* XXX - Is virt_to_page() legal for consistent mem? */  		/* Unreserve */  		for (addr = (unsigned long)dmah->vaddr, sz = dmah->size;  		     sz > 0; addr += PAGE_SIZE, sz -= PAGE_SIZE) {  			ClearPageReserved(virt_to_page(addr));  		} -#endif -#if 0 -		pci_free_consistent(dev->pdev, dmah->size, dmah->vaddr, -				    dmah->busaddr); -#else  		dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr,  				  dmah->busaddr); -#endif  	}  #ifdef DRM_DEBUG_MEMORY @@ -181,7 +167,7 @@ void __drm_pci_free(drm_device_t * dev, drm_dma_handle_t *dmah)  }  /** - * \brief Free a PCI consistent memory block. + * \brief Free a PCI consistent memory block   */  void drm_pci_free(drm_device_t * dev, drm_dma_handle_t *dmah)  { diff --git a/linux-core/drm_proc.c b/linux-core/drm_proc.c index 014486c1..512a8f75 100644 --- a/linux-core/drm_proc.c +++ b/linux-core/drm_proc.c @@ -258,7 +258,7 @@ static int drm__vm_info(char *buf, char **start, off_t offset, int request,  }  /** - * Simply calls _vm_info() while holding the drm_device::struct_sem lock. + * Simply calls _vm_info() while holding the drm_device::struct_mutex lock.   */  static int drm_vm_info(char *buf, char **start, off_t offset, int request,  		       int *eof, void *data) @@ -331,7 +331,7 @@ static int drm__queues_info(char *buf, char **start, off_t offset,  }  /** - * Simply calls _queues_info() while holding the drm_device::struct_sem lock. + * Simply calls _queues_info() while holding the drm_device::struct_mutex lock.   */  static int drm_queues_info(char *buf, char **start, off_t offset, int request,  			   int *eof, void *data) @@ -403,7 +403,7 @@ static int drm__bufs_info(char *buf, char **start, off_t offset, int request,  }  /** - * Simply calls _bufs_info() while holding the drm_device::struct_sem lock. + * Simply calls _bufs_info() while holding the drm_device::struct_mutex lock.   */  static int drm_bufs_info(char *buf, char **start, off_t offset, int request,  			 int *eof, void *data) @@ -459,7 +459,7 @@ static int drm__clients_info(char *buf, char **start, off_t offset,  }  /** - * Simply calls _clients_info() while holding the drm_device::struct_sem lock. + * Simply calls _clients_info() while holding the drm_device::struct_mutex lock.   */  static int drm_clients_info(char *buf, char **start, off_t offset,  			    int request, int *eof, void *data) diff --git a/linux-core/drm_sman.c b/linux-core/drm_sman.c index b92f0ee7..425c8233 100644 --- a/linux-core/drm_sman.c +++ b/linux-core/drm_sman.c @@ -114,7 +114,7 @@ static void drm_sman_mm_destroy(void *private)  	drm_free(mm, sizeof(*mm), DRM_MEM_MM);  } -unsigned long drm_sman_mm_offset(void *private, void *ref) +static unsigned long drm_sman_mm_offset(void *private, void *ref)  {  	drm_mm_node_t *node = (drm_mm_node_t *) ref;  	return node->start; diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c index e4d61dcf..bdc36552 100644 --- a/linux-core/drm_stub.c +++ b/linux-core/drm_stub.c @@ -76,10 +76,10 @@ static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev,  	if (dev->maplist == NULL)  		return -ENOMEM;  	INIT_LIST_HEAD(&dev->maplist->head); -        if (drm_ht_create(&dev->map_hash, 12)) { -                drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS); -                return -ENOMEM; -        } +	if (drm_ht_create(&dev->map_hash, 12)) { +		drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS); +		return -ENOMEM; +	}  	/* the DRM has 6 counters */  	dev->counters = 6; diff --git a/linux-core/drm_vm.c b/linux-core/drm_vm.c index cf3bc3cf..0391395d 100644 --- a/linux-core/drm_vm.c +++ b/linux-core/drm_vm.c @@ -59,7 +59,7 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma,  	drm_device_t *dev = priv->head->dev;  	drm_map_t *map = NULL;  	drm_map_list_t *r_list; -        drm_hash_item_t *hash; +	drm_hash_item_t *hash;  	/*  	 * Find the right map @@ -70,10 +70,10 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma,  	if (!dev->agp || !dev->agp->cant_use_aperture)  		goto vm_nopage_error; -        if (drm_ht_find_item(&dev->map_hash, VM_OFFSET(vma), &hash))  -                goto vm_nopage_error; +	if (drm_ht_find_item(&dev->map_hash, VM_OFFSET(vma), &hash))  +		goto vm_nopage_error; -        r_list = drm_hash_entry(hash, drm_map_list_t, hash); +	r_list = drm_hash_entry(hash, drm_map_list_t, hash);  	map = r_list->map;  	if (map && map->type == _DRM_AGP) { @@ -554,7 +554,7 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma)  	drm_device_t *dev = priv->head->dev;  	drm_map_t *map = NULL;  	unsigned long offset = 0; -        drm_hash_item_t *hash; +	drm_hash_item_t *hash;  	DRM_DEBUG("start = 0x%lx, end = 0x%lx, offset = 0x%lx\n",  		  vma->vm_start, vma->vm_end, VM_OFFSET(vma)); @@ -574,11 +574,11 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma)  	    )  		return drm_mmap_dma(filp, vma); -        if (drm_ht_find_item(&dev->map_hash, VM_OFFSET(vma), &hash)) { -                DRM_ERROR("Could not find map\n"); +	if (drm_ht_find_item(&dev->map_hash, VM_OFFSET(vma), &hash)) { +		DRM_ERROR("Could not find map\n");  		return -EINVAL; -        } -         +	} +  	map = drm_hash_entry(hash,drm_map_list_t, hash)->map;  	if (!map || ((map->flags & _DRM_RESTRICTED) && !capable(CAP_SYS_ADMIN))) diff --git a/linux-core/i810_drv.h b/linux-core/i810_drv.h index e8cf3ff6..bb7358d2 100644 --- a/linux-core/i810_drv.h +++ b/linux-core/i810_drv.h @@ -141,8 +141,8 @@ extern int i810_max_ioctl;                          volatile char *virt;  #define BEGIN_LP_RING(n) do {						\ -	if (I810_VERBOSE)                                               \ -           DRM_DEBUG("BEGIN_LP_RING(%d) in %s\n", n, __FUNCTION__);	\ +	if (I810_VERBOSE)						\ +		DRM_DEBUG("BEGIN_LP_RING(%d) in %s\n", n, __FUNCTION__);\  	if (dev_priv->ring.space < n*4)					\  		i810_wait_ring(dev, n*4);				\  	dev_priv->ring.space -= n*4;					\ @@ -151,17 +151,17 @@ extern int i810_max_ioctl;  	virt = dev_priv->ring.virtual_start;				\  } while (0) -#define ADVANCE_LP_RING() do {				        \ +#define ADVANCE_LP_RING() do {					\  	if (I810_VERBOSE) DRM_DEBUG("ADVANCE_LP_RING\n");    	\ -	dev_priv->ring.tail = outring;		        	\ -	I810_WRITE(LP_RING + RING_TAIL, outring);	        \ +	dev_priv->ring.tail = outring;				\ +	I810_WRITE(LP_RING + RING_TAIL, outring);		\  } while(0) -#define OUT_RING(n) do {  				                \ +#define OUT_RING(n) do {  						\  	if (I810_VERBOSE) DRM_DEBUG("   OUT_RING %x\n", (int)(n));	\ -	*(volatile unsigned int *)(virt + outring) = n;	                \ -	outring += 4;					                \ -	outring &= ringmask;			                        \ +	*(volatile unsigned int *)(virt + outring) = n;			\ +	outring += 4;							\ +	outring &= ringmask;						\  } while (0)  #define GFX_OP_USER_INTERRUPT 		((0<<29)|(2<<23)) @@ -193,7 +193,7 @@ extern int i810_max_ioctl;  #define HEAD_WRAP_ONE       	0x00200000  #define HEAD_ADDR           	0x001FFFFC  #define RING_START     		0x08 -#define START_ADDR          	0x00FFFFF8 +#define START_ADDR        	0x00FFFFF8  #define RING_LEN       		0x0C  #define RING_NR_PAGES       	0x000FF000  #define RING_REPORT_MASK    	0x00000006 diff --git a/linux-core/sis_drv.c b/linux-core/sis_drv.c index 3fdbd88e..36a525dc 100644 --- a/linux-core/sis_drv.c +++ b/linux-core/sis_drv.c @@ -40,15 +40,15 @@ static struct pci_device_id pciidlist[] = {  static int sis_driver_load(drm_device_t *dev, unsigned long chipset)  {  	drm_sis_private_t *dev_priv; -        int ret; +	int ret;  	dev_priv = drm_calloc(1, sizeof(drm_sis_private_t), DRM_MEM_DRIVER);  	if (dev_priv == NULL)  		return DRM_ERR(ENOMEM);  	dev->dev_private = (void *)dev_priv; -        dev_priv->chipset = chipset; -        ret = drm_sman_init(&dev_priv->sman, 2, 12, 8); +	dev_priv->chipset = chipset; +	ret = drm_sman_init(&dev_priv->sman, 2, 12, 8);  	if (ret) {  		drm_free(dev_priv, sizeof(dev_priv), DRM_MEM_DRIVER);  	} @@ -60,7 +60,7 @@ static int sis_driver_unload(drm_device_t *dev)  {  	drm_sis_private_t *dev_priv = dev->dev_private; -        drm_sman_takedown(&dev_priv->sman); +	drm_sman_takedown(&dev_priv->sman);  	drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);  	return 0; @@ -70,10 +70,10 @@ static int sis_driver_unload(drm_device_t *dev)  static int probe(struct pci_dev *pdev, const struct pci_device_id *ent);  static struct drm_driver driver = {  	.driver_features = DRIVER_USE_AGP | DRIVER_USE_MTRR, -        .load = sis_driver_load, -        .unload = sis_driver_unload, +	.load = sis_driver_load, +	.unload = sis_driver_unload,  	.context_dtor = NULL, -        .dma_quiescent = sis_idle, +	.dma_quiescent = sis_idle,  	.reclaim_buffers = NULL,  	.reclaim_buffers_locked = sis_reclaim_buffers_locked,  	.lastclose = sis_lastclose, diff --git a/linux-core/via_dmablit.c b/linux-core/via_dmablit.c index 4a3a7524..61e6a102 100644 --- a/linux-core/via_dmablit.c +++ b/linux-core/via_dmablit.c @@ -121,19 +121,18 @@ via_map_blit_for_device(struct pci_dev *pdev,  		while (line_len > 0) { -                        remaining_len = min(PAGE_SIZE-VIA_PGOFF(cur_mem), line_len); +			remaining_len = min(PAGE_SIZE-VIA_PGOFF(cur_mem), line_len);  			line_len -= remaining_len;  			if (mode == 1) { -                                desc_ptr->mem_addr =  -					dma_map_page(&pdev->dev,  -						     vsg->pages[VIA_PFN(cur_mem) -  -								VIA_PFN(first_addr)], -						     VIA_PGOFF(cur_mem), remaining_len,  -						     vsg->direction); -                                desc_ptr->dev_addr = cur_fb; +				desc_ptr->mem_addr = dma_map_page(&pdev->dev,  +					vsg->pages[VIA_PFN(cur_mem) -  +					VIA_PFN(first_addr)], +					VIA_PGOFF(cur_mem), remaining_len,  +					vsg->direction); +				desc_ptr->dev_addr = cur_fb; -                                desc_ptr->size = remaining_len; +				desc_ptr->size = remaining_len;  				desc_ptr->next = (uint32_t) next;  				next = dma_map_single(&pdev->dev, desc_ptr, sizeof(*desc_ptr),   						      DMA_TO_DEVICE); @@ -167,7 +166,7 @@ via_map_blit_for_device(struct pci_dev *pdev,   */ -void +static void  via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg)   {  	struct page *page; @@ -648,13 +647,13 @@ via_build_sg_info(drm_device_t *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t *  	if ((((unsigned long)xfer->mem_addr & 3) != ((unsigned long)xfer->fb_addr & 3)) ||  	    ((xfer->num_lines > 1) && ((xfer->mem_stride & 3) != (xfer->fb_stride & 3)))) {  		DRM_ERROR("Invalid DRM bitblt alignment.\n"); -	        return DRM_ERR(EINVAL); +		return DRM_ERR(EINVAL);  	}  #else  	if ((((unsigned long)xfer->mem_addr & 15) || ((unsigned long)xfer->fb_addr & 3)) ||  	    ((xfer->num_lines > 1) && ((xfer->mem_stride & 15) || (xfer->fb_stride & 3)))) {  		DRM_ERROR("Invalid DRM bitblt alignment.\n"); -	        return DRM_ERR(EINVAL); +		return DRM_ERR(EINVAL);  	}	  #endif @@ -732,7 +731,7 @@ via_dmablit(drm_device_t *dev, drm_via_dmablit_t *xfer)  	drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private;  	drm_via_sg_info_t *vsg;  	drm_via_blitq_t *blitq; -        int ret; +	int ret;  	int engine;  	unsigned long irqsave; diff --git a/linux-core/via_dmablit.h b/linux-core/via_dmablit.h index 64863917..f6ae03ec 100644 --- a/linux-core/via_dmablit.h +++ b/linux-core/via_dmablit.h @@ -30,6 +30,8 @@  #ifndef _VIA_DMABLIT_H  #define _VIA_DMABLIT_H +#include <linux/dma-mapping.h> +  #define VIA_NUM_BLIT_ENGINES 2  #define VIA_NUM_BLIT_SLOTS 8 @@ -43,12 +45,12 @@ typedef struct _drm_via_sg_info {  	int num_desc;  	enum dma_data_direction direction;  	unsigned char *bounce_buffer; -        dma_addr_t chain_start; +	dma_addr_t chain_start;  	uint32_t free_on_sequence; -        unsigned int descriptors_per_page; +	unsigned int descriptors_per_page;  	int aborted;  	enum { -	        dr_via_device_mapped, +		dr_via_device_mapped,  		dr_via_desc_pages_alloc,  		dr_via_pages_locked,  		dr_via_pages_alloc, @@ -66,7 +68,7 @@ typedef struct _drm_via_blitq {  	unsigned num_free;  	unsigned num_outstanding;  	unsigned long end;   -        int aborting; +	int aborting;  	int is_active;  	drm_via_sg_info_t *blits[VIA_NUM_BLIT_SLOTS];  	spinlock_t blit_lock; | 
