aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/omap_gem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_gem.c')
-rw-r--r--drivers/gpu/drm/omapdrm/omap_gem.c43
1 files changed, 21 insertions, 22 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c
index c9ad18ea31c8..f4e0daede6e2 100644
--- a/drivers/gpu/drm/omapdrm/omap_gem.c
+++ b/drivers/gpu/drm/omapdrm/omap_gem.c
@@ -752,36 +752,35 @@ void omap_gem_dma_sync(struct drm_gem_object *obj,
752{ 752{
753 struct drm_device *dev = obj->dev; 753 struct drm_device *dev = obj->dev;
754 struct omap_gem_object *omap_obj = to_omap_bo(obj); 754 struct omap_gem_object *omap_obj = to_omap_bo(obj);
755 int i, npages = obj->size >> PAGE_SHIFT;
756 struct page **pages = omap_obj->pages;
757 bool dirty = false;
755 758
756 if (is_cached_coherent(obj)) { 759 if (!is_cached_coherent(obj))
757 int i, npages = obj->size >> PAGE_SHIFT; 760 return;
758 struct page **pages = omap_obj->pages;
759 bool dirty = false;
760
761 for (i = 0; i < npages; i++) {
762 if (!omap_obj->addrs[i]) {
763 dma_addr_t addr;
764 761
765 addr = dma_map_page(dev->dev, pages[i], 0, 762 for (i = 0; i < npages; i++) {
766 PAGE_SIZE, DMA_BIDIRECTIONAL); 763 if (!omap_obj->addrs[i]) {
764 dma_addr_t addr;
767 765
768 if (dma_mapping_error(dev->dev, addr)) { 766 addr = dma_map_page(dev->dev, pages[i], 0,
769 dev_warn(dev->dev, 767 PAGE_SIZE, DMA_BIDIRECTIONAL);
770 "%s: failed to map page\n",
771 __func__);
772 break;
773 }
774 768
775 dirty = true; 769 if (dma_mapping_error(dev->dev, addr)) {
776 omap_obj->addrs[i] = addr; 770 dev_warn(dev->dev, "%s: failed to map page\n",
771 __func__);
772 break;
777 } 773 }
778 }
779 774
780 if (dirty) { 775 dirty = true;
781 unmap_mapping_range(obj->filp->f_mapping, 0, 776 omap_obj->addrs[i] = addr;
782 omap_gem_mmap_size(obj), 1);
783 } 777 }
784 } 778 }
779
780 if (dirty) {
781 unmap_mapping_range(obj->filp->f_mapping, 0,
782 omap_gem_mmap_size(obj), 1);
783 }
785} 784}
786 785
787/** 786/**