summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/nvmap
diff options
context:
space:
mode:
authorGreg Roth <groth@nvidia.com>2011-03-16 13:44:47 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:37:10 -0800
commit417ccc5672fbc48cde134b02a093b33e612d393f (patch)
tree2f0300c94d63645e3ee88bf471b35d9b69092183 /drivers/video/tegra/nvmap
parent8332679a3b04db571950bf30cbc44dd4a7838e14 (diff)
video: tegra: nvmap: perform cache maintenance for rw_handle
Need cache maintenance on rw_handle to remove display garbage issue which happens randomly. Change-Id: I73606ae6551c0e75058e055f4a19e5f074a47004 Signed-off-by: Greg Roth <groth@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/nvmap')
-rw-r--r--drivers/video/tegra/nvmap/nvmap_ioctl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/video/tegra/nvmap/nvmap_ioctl.c b/drivers/video/tegra/nvmap/nvmap_ioctl.c
index b943065a44c0..d9fcab954945 100644
--- a/drivers/video/tegra/nvmap/nvmap_ioctl.c
+++ b/drivers/video/tegra/nvmap/nvmap_ioctl.c
@@ -614,12 +614,20 @@ static ssize_t rw_handle(struct nvmap_client *client, struct nvmap_handle *h,
break;
}
+ if(is_read)
+ cache_maint(client, h, h_offs,
+ h_offs + elem_size, NVMAP_CACHE_OP_INV);
+
ret = rw_handle_page(h, is_read, h_offs, sys_addr,
elem_size, (unsigned long)addr, *pte);
if (ret)
break;
+ if(!is_read)
+ cache_maint(client, h, h_offs,
+ h_offs + elem_size, NVMAP_CACHE_OP_WB);
+
copied += elem_size;
sys_addr += sys_stride;
h_offs += h_stride;