(This is more a placeholder for a task that needs doing than a bug)
Currently the bcm2835-v4l2 driver uses the videobuf2-vmalloc buffer allocator, and relies on VCHI doing a copy of every frame from VC memory into ARM memory. This obviously has a hit on memory bandwidth.
The videobuf2-contig allocator should allow CMA allocated memory to be used by both VC and ARM, and would also work with the vc4 DRM/KMS driver. (Already demoed in anholt#12 although still with VCHI copying from VC to CMA memory)
Tasks:
The awkard bits are:
- currently very little memory is allocated to CMA. How can that be changed without impacting platforms unduly? Make the driver a device tree node and have an overlay load the driver and increase CMA (can it do that? May only be a kernel command line thing)
- does it throw up further caching issues?
(This is more a placeholder for a task that needs doing than a bug)
Currently the bcm2835-v4l2 driver uses the videobuf2-vmalloc buffer allocator, and relies on VCHI doing a copy of every frame from VC memory into ARM memory. This obviously has a hit on memory bandwidth.
The videobuf2-contig allocator should allow CMA allocated memory to be used by both VC and ARM, and would also work with the vc4 DRM/KMS driver. (Already demoed in anholt#12 although still with VCHI copying from VC to CMA memory)
Tasks:
The awkard bits are: