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