media: vivid: add cache_hints module param
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>
This commit is contained in:
parent
2ff99ca4bc
commit
62a4cd0130
|
@ -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.
|
||||
|
|
|
@ -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 = {
|
||||
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue