Loading drivers/char/drm/i810_dma.c +23 −11 Original line number Diff line number Diff line Loading @@ -219,8 +219,7 @@ static int i810_dma_cleanup(drm_device_t * dev) (drm_i810_private_t *) dev->dev_private; if (dev_priv->ring.virtual_start) { drm_ioremapfree((void *)dev_priv->ring.virtual_start, dev_priv->ring.Size, dev); drm_core_ioremapfree(&dev_priv->ring.map, dev); } if (dev_priv->hw_status_page) { pci_free_consistent(dev->pdev, PAGE_SIZE, Loading @@ -236,9 +235,9 @@ static int i810_dma_cleanup(drm_device_t * dev) for (i = 0; i < dma->buf_count; i++) { drm_buf_t *buf = dma->buflist[i]; drm_i810_buf_priv_t *buf_priv = buf->dev_private; if (buf_priv->kernel_virtual && buf->total) drm_ioremapfree(buf_priv->kernel_virtual, buf->total, dev); drm_core_ioremapfree(&buf_priv->map, dev); } } return 0; Loading Loading @@ -311,8 +310,15 @@ static int i810_freelist_init(drm_device_t * dev, drm_i810_private_t * dev_priv) *buf_priv->in_use = I810_BUF_FREE; buf_priv->kernel_virtual = drm_ioremap(buf->bus_address, buf->total, dev); buf_priv->map.offset = buf->bus_address; buf_priv->map.size = buf->total; buf_priv->map.type = _DRM_AGP; buf_priv->map.flags = 0; buf_priv->map.mtrr = 0; drm_core_ioremap(&buf_priv->map, dev); buf_priv->kernel_virtual = buf_priv->map.handle; } return 0; } Loading Loading @@ -363,18 +369,24 @@ static int i810_dma_initialize(drm_device_t * dev, dev_priv->ring.End = init->ring_end; dev_priv->ring.Size = init->ring_size; dev_priv->ring.virtual_start = drm_ioremap(dev->agp->base + init->ring_start, init->ring_size, dev); dev_priv->ring.map.offset = dev->agp->base + init->ring_start; dev_priv->ring.map.size = init->ring_size; dev_priv->ring.map.type = _DRM_AGP; dev_priv->ring.map.flags = 0; dev_priv->ring.map.mtrr = 0; if (dev_priv->ring.virtual_start == NULL) { drm_core_ioremap(&dev_priv->ring.map, dev); if (dev_priv->ring.map.handle == NULL) { dev->dev_private = (void *)dev_priv; i810_dma_cleanup(dev); DRM_ERROR("can not ioremap virtual address for" " ring buffer\n"); return -ENOMEM; return DRM_ERR(ENOMEM); } dev_priv->ring.virtual_start = dev_priv->ring.map.handle; dev_priv->ring.tail_mask = dev_priv->ring.Size - 1; dev_priv->w = init->w; Loading drivers/char/drm/i810_drv.h +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ typedef struct drm_i810_buf_priv { int currently_mapped; void *virtual; void *kernel_virtual; drm_local_map_t map; } drm_i810_buf_priv_t; typedef struct _drm_i810_ring_buffer { Loading @@ -72,6 +73,7 @@ typedef struct _drm_i810_ring_buffer { int head; int tail; int space; drm_local_map_t map; } drm_i810_ring_buffer_t; typedef struct drm_i810_private { Loading drivers/char/drm/i830_dma.c +21 −11 Original line number Diff line number Diff line Loading @@ -223,8 +223,7 @@ static int i830_dma_cleanup(drm_device_t * dev) (drm_i830_private_t *) dev->dev_private; if (dev_priv->ring.virtual_start) { drm_ioremapfree((void *)dev_priv->ring.virtual_start, dev_priv->ring.Size, dev); drm_core_ioremapfree(&dev_priv->ring.map, dev); } if (dev_priv->hw_status_page) { pci_free_consistent(dev->pdev, PAGE_SIZE, Loading @@ -242,8 +241,7 @@ static int i830_dma_cleanup(drm_device_t * dev) drm_buf_t *buf = dma->buflist[i]; drm_i830_buf_priv_t *buf_priv = buf->dev_private; if (buf_priv->kernel_virtual && buf->total) drm_ioremapfree(buf_priv->kernel_virtual, buf->total, dev); drm_core_ioremapfree(&buf_priv->map, dev); } } return 0; Loading Loading @@ -320,8 +318,14 @@ static int i830_freelist_init(drm_device_t * dev, drm_i830_private_t * dev_priv) *buf_priv->in_use = I830_BUF_FREE; buf_priv->kernel_virtual = drm_ioremap(buf->bus_address, buf->total, dev); buf_priv->map.offset = buf->bus_address; buf_priv->map.size = buf->total; buf_priv->map.type = _DRM_AGP; buf_priv->map.flags = 0; buf_priv->map.mtrr = 0; drm_core_ioremap(&buf_priv->map, dev); buf_priv->kernel_virtual = buf_priv->map.handle; } return 0; } Loading Loading @@ -373,18 +377,24 @@ static int i830_dma_initialize(drm_device_t * dev, dev_priv->ring.End = init->ring_end; dev_priv->ring.Size = init->ring_size; dev_priv->ring.virtual_start = drm_ioremap(dev->agp->base + init->ring_start, init->ring_size, dev); dev_priv->ring.map.offset = dev->agp->base + init->ring_start; dev_priv->ring.map.size = init->ring_size; dev_priv->ring.map.type = _DRM_AGP; dev_priv->ring.map.flags = 0; dev_priv->ring.map.mtrr = 0; drm_core_ioremap(&dev_priv->ring.map, dev); if (dev_priv->ring.virtual_start == NULL) { if (dev_priv->ring.map.handle == NULL) { dev->dev_private = (void *)dev_priv; i830_dma_cleanup(dev); DRM_ERROR("can not ioremap virtual address for" " ring buffer\n"); return -ENOMEM; return DRM_ERR(ENOMEM); } dev_priv->ring.virtual_start = dev_priv->ring.map.handle; dev_priv->ring.tail_mask = dev_priv->ring.Size - 1; dev_priv->w = init->w; Loading drivers/char/drm/i830_drv.h +2 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ typedef struct drm_i830_buf_priv { int currently_mapped; void __user *virtual; void *kernel_virtual; drm_local_map_t map; } drm_i830_buf_priv_t; typedef struct _drm_i830_ring_buffer { Loading @@ -79,6 +80,7 @@ typedef struct _drm_i830_ring_buffer { int head; int tail; int space; drm_local_map_t map; } drm_i830_ring_buffer_t; typedef struct drm_i830_private { Loading Loading
drivers/char/drm/i810_dma.c +23 −11 Original line number Diff line number Diff line Loading @@ -219,8 +219,7 @@ static int i810_dma_cleanup(drm_device_t * dev) (drm_i810_private_t *) dev->dev_private; if (dev_priv->ring.virtual_start) { drm_ioremapfree((void *)dev_priv->ring.virtual_start, dev_priv->ring.Size, dev); drm_core_ioremapfree(&dev_priv->ring.map, dev); } if (dev_priv->hw_status_page) { pci_free_consistent(dev->pdev, PAGE_SIZE, Loading @@ -236,9 +235,9 @@ static int i810_dma_cleanup(drm_device_t * dev) for (i = 0; i < dma->buf_count; i++) { drm_buf_t *buf = dma->buflist[i]; drm_i810_buf_priv_t *buf_priv = buf->dev_private; if (buf_priv->kernel_virtual && buf->total) drm_ioremapfree(buf_priv->kernel_virtual, buf->total, dev); drm_core_ioremapfree(&buf_priv->map, dev); } } return 0; Loading Loading @@ -311,8 +310,15 @@ static int i810_freelist_init(drm_device_t * dev, drm_i810_private_t * dev_priv) *buf_priv->in_use = I810_BUF_FREE; buf_priv->kernel_virtual = drm_ioremap(buf->bus_address, buf->total, dev); buf_priv->map.offset = buf->bus_address; buf_priv->map.size = buf->total; buf_priv->map.type = _DRM_AGP; buf_priv->map.flags = 0; buf_priv->map.mtrr = 0; drm_core_ioremap(&buf_priv->map, dev); buf_priv->kernel_virtual = buf_priv->map.handle; } return 0; } Loading Loading @@ -363,18 +369,24 @@ static int i810_dma_initialize(drm_device_t * dev, dev_priv->ring.End = init->ring_end; dev_priv->ring.Size = init->ring_size; dev_priv->ring.virtual_start = drm_ioremap(dev->agp->base + init->ring_start, init->ring_size, dev); dev_priv->ring.map.offset = dev->agp->base + init->ring_start; dev_priv->ring.map.size = init->ring_size; dev_priv->ring.map.type = _DRM_AGP; dev_priv->ring.map.flags = 0; dev_priv->ring.map.mtrr = 0; if (dev_priv->ring.virtual_start == NULL) { drm_core_ioremap(&dev_priv->ring.map, dev); if (dev_priv->ring.map.handle == NULL) { dev->dev_private = (void *)dev_priv; i810_dma_cleanup(dev); DRM_ERROR("can not ioremap virtual address for" " ring buffer\n"); return -ENOMEM; return DRM_ERR(ENOMEM); } dev_priv->ring.virtual_start = dev_priv->ring.map.handle; dev_priv->ring.tail_mask = dev_priv->ring.Size - 1; dev_priv->w = init->w; Loading
drivers/char/drm/i810_drv.h +2 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ typedef struct drm_i810_buf_priv { int currently_mapped; void *virtual; void *kernel_virtual; drm_local_map_t map; } drm_i810_buf_priv_t; typedef struct _drm_i810_ring_buffer { Loading @@ -72,6 +73,7 @@ typedef struct _drm_i810_ring_buffer { int head; int tail; int space; drm_local_map_t map; } drm_i810_ring_buffer_t; typedef struct drm_i810_private { Loading
drivers/char/drm/i830_dma.c +21 −11 Original line number Diff line number Diff line Loading @@ -223,8 +223,7 @@ static int i830_dma_cleanup(drm_device_t * dev) (drm_i830_private_t *) dev->dev_private; if (dev_priv->ring.virtual_start) { drm_ioremapfree((void *)dev_priv->ring.virtual_start, dev_priv->ring.Size, dev); drm_core_ioremapfree(&dev_priv->ring.map, dev); } if (dev_priv->hw_status_page) { pci_free_consistent(dev->pdev, PAGE_SIZE, Loading @@ -242,8 +241,7 @@ static int i830_dma_cleanup(drm_device_t * dev) drm_buf_t *buf = dma->buflist[i]; drm_i830_buf_priv_t *buf_priv = buf->dev_private; if (buf_priv->kernel_virtual && buf->total) drm_ioremapfree(buf_priv->kernel_virtual, buf->total, dev); drm_core_ioremapfree(&buf_priv->map, dev); } } return 0; Loading Loading @@ -320,8 +318,14 @@ static int i830_freelist_init(drm_device_t * dev, drm_i830_private_t * dev_priv) *buf_priv->in_use = I830_BUF_FREE; buf_priv->kernel_virtual = drm_ioremap(buf->bus_address, buf->total, dev); buf_priv->map.offset = buf->bus_address; buf_priv->map.size = buf->total; buf_priv->map.type = _DRM_AGP; buf_priv->map.flags = 0; buf_priv->map.mtrr = 0; drm_core_ioremap(&buf_priv->map, dev); buf_priv->kernel_virtual = buf_priv->map.handle; } return 0; } Loading Loading @@ -373,18 +377,24 @@ static int i830_dma_initialize(drm_device_t * dev, dev_priv->ring.End = init->ring_end; dev_priv->ring.Size = init->ring_size; dev_priv->ring.virtual_start = drm_ioremap(dev->agp->base + init->ring_start, init->ring_size, dev); dev_priv->ring.map.offset = dev->agp->base + init->ring_start; dev_priv->ring.map.size = init->ring_size; dev_priv->ring.map.type = _DRM_AGP; dev_priv->ring.map.flags = 0; dev_priv->ring.map.mtrr = 0; drm_core_ioremap(&dev_priv->ring.map, dev); if (dev_priv->ring.virtual_start == NULL) { if (dev_priv->ring.map.handle == NULL) { dev->dev_private = (void *)dev_priv; i830_dma_cleanup(dev); DRM_ERROR("can not ioremap virtual address for" " ring buffer\n"); return -ENOMEM; return DRM_ERR(ENOMEM); } dev_priv->ring.virtual_start = dev_priv->ring.map.handle; dev_priv->ring.tail_mask = dev_priv->ring.Size - 1; dev_priv->w = init->w; Loading
drivers/char/drm/i830_drv.h +2 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ typedef struct drm_i830_buf_priv { int currently_mapped; void __user *virtual; void *kernel_virtual; drm_local_map_t map; } drm_i830_buf_priv_t; typedef struct _drm_i830_ring_buffer { Loading @@ -79,6 +80,7 @@ typedef struct _drm_i830_ring_buffer { int head; int tail; int space; drm_local_map_t map; } drm_i830_ring_buffer_t; typedef struct drm_i830_private { Loading