diff options
author | Vikram Fugro <vfugro@nvidia.com> | 2013-10-30 13:40:20 +0530 |
---|---|---|
committer | Matthew Pedro <mapedro@nvidia.com> | 2013-11-18 14:15:39 -0800 |
commit | 2fb9cd0d92979598e3aa5319babdbe6be4c6df22 (patch) | |
tree | 7a7e9e46d6c75b25ca859eef43e8dc60e2d52c4c /drivers | |
parent | 2cfae82f4f11691c291c85f9d4ff2ec73ea74e57 (diff) |
media: nvmap: Few tweaks in nvmap
The tweaks are only specific to r16-r2 branch
and will not go into mainline.
- Pass nvmap memory handle to the user through
the mmap'd buffer allocated by videobuf2 client.
- Allow the "user" nvmap client to access the
nvmap memory handle of "videobuf2-dma-nvmap" client.
Re-arranging the copyright message in nvmap_dev.c
for Automatic validation to pass.
Bug 1369083
Change-Id: Ia27d172253860e79557911c2e848bc9084d662d4
Signed-off-by: Vikram Fugro <vfugro@nvidia.com>
Reviewed-on: http://git-master/r/309494
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Kaustubh Purandare <kpurandare@nvidia.com>
Reviewed-by: Winnie Hsu <whsu@nvidia.com>
Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/videobuf2-dma-nvmap.c | 2 | ||||
-rw-r--r-- | drivers/video/tegra/nvmap/nvmap_dev.c | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/drivers/media/video/videobuf2-dma-nvmap.c b/drivers/media/video/videobuf2-dma-nvmap.c index 5ab3c62ac05b..4ba8fed0cc02 100644 --- a/drivers/media/video/videobuf2-dma-nvmap.c +++ b/drivers/media/video/videobuf2-dma-nvmap.c @@ -82,6 +82,8 @@ static void *vb2_dma_nvmap_alloc(void *alloc_ctx, unsigned long size) buf->handler.put = vb2_dma_nvmap_put; buf->handler.arg = buf; + *((unsigned long *)buf->vaddr) = (unsigned long)buf->nvmap_ref->handle; + atomic_inc(&buf->refcount); return buf; diff --git a/drivers/video/tegra/nvmap/nvmap_dev.c b/drivers/video/tegra/nvmap/nvmap_dev.c index 0c12348db88e..3b0db14f16ca 100644 --- a/drivers/video/tegra/nvmap/nvmap_dev.c +++ b/drivers/video/tegra/nvmap/nvmap_dev.c @@ -1,10 +1,10 @@ /* + * Copyright (c) 2011-2013, NVIDIA CORPORATION. All rights reserved. + * * drivers/video/tegra/nvmap/nvmap_dev.c * * User-space interface to nvmap * - * Copyright (c) 2011-2012, NVIDIA Corporation. - * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -231,6 +231,14 @@ struct nvmap_handle *nvmap_get_handle_id(struct nvmap_client *client, struct nvmap_handle_ref *ref; struct nvmap_handle *h = NULL; + /* Allow the handle to be accessed by other (non-owner) + clients only if the owner is "videobuf2-dma-nvmap", + which is a V4L2 capture kernel module. This handle can + be accessed by the "user" client for rendering */ + if (!strcmp(((struct nvmap_handle *)id)->owner->name, + "videobuf2-dma-nvmap")) + client = ((struct nvmap_handle *)id)->owner; + nvmap_ref_lock(client); ref = _nvmap_validate_id_locked(client, id); if (ref) |