11) Support dma-buf memory management.
2
3In order to zero-copy import camera images into the 3D or display
4pipelines, we need to export our buffers through dma-buf so that the
5vc4 driver can import them.  This may involve bringing in the VCSM
6driver (which allows long-term management of regions of memory in the
7space that the VPU reserved and Linux otherwise doesn't have access
8to), or building some new protocol that allows VCSM-style management
9of Linux's CMA memory.
10
112) Avoid extra copies for padding of images.
12
13We expose V4L2_PIX_FMT_* formats that have a specified stride/height
14padding in the V4L2 spec, but that padding doesn't match what the
15hardware can do.  If we exposed the native padding requirements
16through the V4L2 "multiplanar" formats, the firmware would have one
17less copy it needed to do.
18
193) Port to ARM64
20
21The bulk_receive() does some manual cache flushing that are 32-bit ARM
22only, which we should convert to proper cross-platform APIs.
23
244) Convert to be a platform driver.
25
26Right now when the module probes, it tries to initialize VCHI and
27errors out if it wasn't ready yet.  If bcm2835-v4l2 was built in, then
28VCHI generally isn't ready because it depends on both the firmware and
29mailbox drivers having already loaded.
30
31We should have VCHI create a platform device once it's initialized,
32and have this driver bind to it, so that we automatically load the
33v4l2 module after VCHI loads.
34
35