diff options
author | Kirill Artamonov <kartamonov@nvidia.com> | 2012-10-22 19:05:46 +0300 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-10-29 12:15:52 -0700 |
commit | 71c7374f7cfc6484d1fd7fa817e0620faceda86b (patch) | |
tree | 67d72c5807039f6e3b65dc5aa4eb38d93a7e1da8 /drivers/video/tegra/host/nvmap.h | |
parent | 555aa152f34db99864d4ca1d361303c1284fdb72 (diff) |
video: tegra: host: optimize nvhost pin operations
Pin both relocs and gathers in single pin_job_mem() call.
Use nvmap_pin_array() to avoid extra pin operation and
per-handle locking overhead.
Remove used relocs from the nvhost_job to avoid extra loop
iterations inside do_relocs.
Use fast nvmap functions _nvmap_duplicate_handle_id()
_nvmap_free().
bug 1158533
Change-Id: I856006decee4a309369e90f3c3d6721886e6ee64
Signed-off-by: Kirill Artamonov <kartamonov@nvidia.com>
Reviewed-on: http://git-master/r/142556
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/host/nvmap.h')
-rw-r--r-- | drivers/video/tegra/host/nvmap.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/tegra/host/nvmap.h b/drivers/video/tegra/host/nvmap.h index 31b15549c167..2172f4fd8a16 100644 --- a/drivers/video/tegra/host/nvmap.h +++ b/drivers/video/tegra/host/nvmap.h @@ -46,4 +46,17 @@ void nvhost_nvmap_kunmap(struct mem_handle *handle, unsigned int pagenum, struct mem_handle *nvhost_nvmap_get(struct mem_mgr *mgr, u32 id, struct nvhost_device *dev); +phys_addr_t nvhost_nvmap_get_addr_from_id(u32 id); + +int nvhost_nvmap_pin_array_ids(struct mem_mgr *mgr, + long unsigned *ids, + long unsigned id_type_mask, + long unsigned id_type, + u32 count, + struct nvhost_job_unpin *unpin_data, + dma_addr_t *phys_addr); + +void nvhost_nvmap_unpin_id(struct mem_mgr *mgr, u32 id); + + #endif |