Skip to content

Commit

Permalink
media: vivid: add cache_hints module param
Browse files Browse the repository at this point in the history
Add a cache_hints module param to control per-queue user space cache
hints support.

Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  • Loading branch information
sergey-senozhatsky authored and mchehab committed Jun 23, 2020
1 parent 2ff99ca commit 62a4cd0
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
9 changes: 9 additions & 0 deletions Documentation/admin-guide/media/vivid.rst
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,15 @@ all configurable using the following module options:
- 0: vmalloc
- 1: dma-contig

- cache_hints:

specifies if the device should set queues' user-space cache and memory
consistency hint capability (V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS).
The hints are valid only when using MMAP streaming I/O. Default is 0.

- 0: forbid hints
- 1: allow hints

Taken together, all these module options allow you to precisely customize
the driver behavior and test your application with all sorts of permutations.
It is also very suitable to emulate hardware that is not yet available, e.g.
Expand Down
9 changes: 9 additions & 0 deletions drivers/media/test-drivers/vivid/vivid-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,14 @@ MODULE_PARM_DESC(allocators, " memory allocator selection, default is 0.\n"
"\t\t 0 == vmalloc\n"
"\t\t 1 == dma-contig");

static unsigned int cache_hints[VIVID_MAX_DEVS] = {
[0 ... (VIVID_MAX_DEVS - 1)] = 0
};
module_param_array(cache_hints, uint, NULL, 0444);
MODULE_PARM_DESC(cache_hints, " user-space cache hints, default is 0.\n"
"\t\t 0 == forbid\n"
"\t\t 1 == allow");

static struct vivid_dev *vivid_devs[VIVID_MAX_DEVS];

const struct v4l2_rect vivid_min_rect = {
Expand Down Expand Up @@ -819,6 +827,7 @@ static int vivid_create_queue(struct vivid_dev *dev,
q->lock = &dev->mutex;
q->dev = dev->v4l2_dev.dev;
q->supports_requests = true;
q->allow_cache_hints = (cache_hints[dev->inst] == 1);

return vb2_queue_init(q);
}
Expand Down

0 comments on commit 62a4cd0

Please sign in to comment.